错误信息如下:
% go get
can't load package: package .: no buildable Go source files in /Users/7yan00
% echo $GOPATH
/Users/7yan00/Golang
你如何排除这个错误?
确保您在Go项目源文件夹(如/Users/7yan00/Golang/src/myProject
)中使用该命令。
另一种选择(类似于这个错误)是使用-d
选项(参见go get
命令)
go get -d
-d
标志指示下载完包后停止;也就是说,它指示get不要安装这些包。
看看这对你的情况是否有帮助。
但更一般地说,正如这篇文章所描述的:
go get
是用于包,而不是用于存储库。如果你想要一个特定的包,比如
go.text/encoding
,那么使用
go get code.google.com/p/go.text/encoding
如果您想要该存储库中的所有包,使用
...
表示:
go get code.google.com/p/go.text/...
您应该检查$GOPATH
目录。如果包名称的目录为空,则go get
不会从存储库下载包。
例如,如果我想从它的github存储库中获得github.com/googollee/go-socket.io
包,并且在$GOPATH
中已经有一个空目录github.com/googollee/go-socket.io
, go get
不下载包,然后抱怨目录中没有可构建的Go源文件。首先删除所有空目录
另一个可能的原因:
不能加载package: ....:没有可构建的Go源文件
表示正在编译的源文件包含:
// +build ignore
在这种情况下,文件被忽略并且不能按要求构建。此行为记录在https://golang.org/pkg/go/build/
为我的情况解决这个问题:
我必须指定一个更具体的子包来安装。
错:go get github.com/garyburd/redigo
正确的:
go get github.com/garyburd/redigo/redis
如果您想要该存储库中的所有包,使用...
表示,如:
go get code.google.com/p/go.text/...
你可以尝试从mod
下载软件包 go get -v all
我有这个确切的错误代码,检查我的存储库后发现没有go文件,但实际上只是更多的目录。所以对我来说,这更像是转移注意力,而不是一个错误。
我建议你做
去env
并确保一切正常,检查操作系统中的环境变量,并检查确保shell (bash或w/e)没有通过.bash_profile或.bashrc文件危及它。好运。