2015-01-15 73 views
2

我只是用自制软件安装golang,而且我无法导入远程软件包。golang远程导入失败

,当我尝试安装装配demo.go包含

import "github.com/bradfitz/gomemcache/memcache" 

我收到以下错误

$ go install 
demo.go:3:8: cannot find package "github.com/bradfitz/gomemcache/memcache" in any of: 
/usr/local/Cellar/go/1.4/libexec/src/github.com/bradfitz/gomemcache/memcache (from $GOROOT) 
/Users/white/go/src/github.com/bradfitz/gomemcache/memcache (from $GOPATH) 

为了我的外行人看来它看起来像它只是在本地上我GOPATH寻找。

+1

有没有这样的事情作为“远程导入”。所有导入都是本地的,它们只是为了方便而恰好使用它们的URL。 – JimB

回答

5

这意味着你需要先得到它:

go get github.com/bradfitz/gomemcache/memcache 

这是bradfitz/gomemcache建议什么。

+0

所有远程导入都是如此吗?这不仅仅是memcache包给了我这个错误。 – honkskillet

+1

@honkskillet golang包的导入不会涉及到,因为它们在你的'$ GOROOT'中。其余的将涉及'去获取'。 – VonC

+0

我必须先设置GOPATH –

2

你未经训练的眼睛并不是在愚弄你:编译器只会查找本地存储的代码。

但是,go get工具可用于提取存储在远程存储库中的代码并将其复制到本地。所以,如果你键入:

go get github.com/bradfitz/gomemcache/memcache

你将有代码的副本$GOPATH/src/github.com/bradfitz/gomemcache/memcache

注意github.com/bradfitz/gomemcahce/memcache实际上是一个本地目录路径,让你用import "github.com/bradfitz/gomemcache/memcache"将其导入你的代码。它恰好也是go get工具知道如何获取的远程存储库的名称。