无法加载包:package。:没有可构建的Go源文件

时间:2014-06-07 07:44:09

标签: go

以下是错误消息:

% go get     
can't load package: package .: no buildable Go source files in /Users/7yan00

% echo $GOPATH     
/Users/7yan00/Golang

您如何解决该错误?

7 个答案:

答案 0 :(得分:43)

确保在Go项目源文件夹中使用该命令(如/Users/7yan00/Golang/src/myProject)。

另一种选择(similar to this bug)是使用-d选项(请参阅go get command

go get -d
  

-d标志指示在下载软件包后停止;也就是说,它指示不要安装软件包。

看看你的情况是否有帮助。


但更一般地说,如in this thread所述:

  

go get适用于软件包,不适用于存储库。

     

所以,如果你想要一个特定的包,比如go.text/encoding,那么使用

go get code.google.com/p/go.text/encoding
  

如果您想要该存储库中的所有包,请使用...表示:

go get code.google.com/p/go.text/...

答案 1 :(得分:28)

您应该检查$GOPATH目录。如果包名称有空目录,go get不会从存储库下载包。

例如,如果我想从它的github存储库中获取github.com/googollee/go-socket.io包,并且github.com/googollee/go-socket.io中已经有一个空目录$GOPATH,{{1 没有下载软件包,然后抱怨目录中没有可构建的Go源文件。首先删除所有空目录。

答案 2 :(得分:10)

该消息的另一个可能原因是:

  

无法加载包:....:没有可构建的Go源文件

编译源文件的时间是:

ErrorType

在这种情况下,文件会被忽略,并且无法按要求构建。https://golang.org/pkg/go/build/

记录了此行为

答案 3 :(得分:6)

根据我的情况解决此问题:

我必须指定一个更具体的子包来安装。

错:

go get github.com/garyburd/redigo

正确:

go get github.com/garyburd/redigo/redis

答案 4 :(得分:2)

如果您想要该存储库中的所有包,请使用...表示,例如:

go get code.google.com/p/go.text/...

答案 5 :(得分:0)

我有这个确切的错误代码,检查我的存储库后发现没有go文件,但实际上只有更多目录。因此,对我来说,这不仅仅是一个红色的鲱鱼,而且是一个错误。

我建议这样做

  

转到环境

并确保一切都应该正常进行,检查操作系统中的环境变量,并确保您的shell(bash或w / e)不会通过.bash_profile或.bashrc文件之类的东西来破坏它。 。祝你好运。

答案 6 :(得分:0)

您可以尝试从mod下载软件包

switch(hashfunc(input)) { case hashfunc("hello"): std::cout << "world\n"; break; }