“无法识别的导入path”与go get
我试图安装一个web.go
,但运行go get github.com/hoisie/web
返回
package bufio: unrecognized import path "bufio" package bytes: unrecognized import path "bytes" package crypto/rand: unrecognized import path "crypto/rand" package crypto/sha1: unrecognized import path "crypto/sha1" package crypto/tls: unrecognized import path "crypto/tls" package encoding/base64: unrecognized import path "encoding/base64" package encoding/binary: unrecognized import path "encoding/binary" package encoding/json: unrecognized import path "encoding/json" package errors: unrecognized import path "errors" package fmt: unrecognized import path "fmt"
而且这个包持续了一段时间,然后再没有别的东西了。 go env
给我:
GOARCH="amd64" GOBIN="/usr/local/go/bin" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="" GORACE="" GOROOT="/home/me/go" GOTOOLDIR="/home/me/go/pkg/tool/linux_amd64" TERM="dumb" CC="gcc" GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread" CXX="g++" CGO_ENABLED="1"
我怎样才能安装web.go
? 使用go get
(而不是go install
)是在github页面上的README里面。 我的Go版本是go version go1.2 linux/amd64
。
这些问题涉及无效的GOROOT
。
我想你安装在/usr/local/go
。
所以把你的GOROOT
path改为/usr/local/go/bin
。
看起来你的工作空间(GOPATH)位于/home/me/go
。
这可能会解决您的问题。
把它添加到你的bashconfiguration文件的底部,位于这里=> $HOME/.profile
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin
确保删除旧的GOROOT
参考。
然后再次尝试安装web.go。
如果这不起作用,那么请让Ubuntu为你安装Google Go。
sudo apt-get install golang
从旧的版本(从旧的PPA安装)转移到新的(1.2.1)在Ubuntu 14.04默认软件包后,我有完全相同的问题。
第一步是清除现有的走:
sudo apt-get purge golang*
哪个输出以下警告:
dpkg: warning: while removing golang-go, directory '/usr/lib/go/src' not empty so not removed dpkg: warning: while removing golang-go.tools, directory '/usr/lib/go' not empty so not removed
它看起来像删除去留下一些文件,这反过来可以混淆新安装。 更确切地说,安装本身将会很好地完成,但是之后的任何命令,比如“go something”,都会给出那些“无法识别的导入path”的错误。
我所要做的就是先删除这些dirs,重新安装golang,并且所有的作品都像魅力一样(假设你也设置了GOPATH)
# careful! sudo rm -rf /usr/lib/go /usr/lib/go/src sudo apt-get install golang-go golang-go.tools
我在OSX 10.11上安装了Go,发现我必须将GOROOT
设置为:
/usr/local/Cellar/go/1.5.1/libexec
(当然用你所拥有的版本replace这个path中的版本)
Brew使用符号链接,这是愚弄gotool。 所以请按照链接回家。
因为GFW禁止你访问golang.org! 而当我使用代理,它可以很好地工作。
您可以使用命令go get -v -u golang.org/x/oauth2
来查看信息
我在MacOS 10.10上遇到同样的问题。 而我发现这个问题是由OhMyZsh shell造成的。 然后我切换回bash一切正常。
这是我去env
bash-3.2$ go env GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/bis/go" GORACE="" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" CC="clang" GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common" CXX="clang++" CGO_ENABLED="1
升级了go1.2到go1.4之后,我遇到了同样的问题。
我在我的GOPATH中将src重命名为_src,然后go get -v
它工作,然后我删除_src。
希望能帮助到你。
我有一个类似的问题。 但那只是因为我安装的软件包不在$GOPATH/src/
目录中,当我安装在那个目录下时,一切正常(除了软件包名称不同而引起的问题,但是我使用了Makefile来构build,所以可能不会与你的问题有关)。