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

7ya*_*n00 74 go

这是错误消息:

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

% echo $GOPATH     
/Users/7yan00/Golang
Run Code Online (Sandbox Code Playgroud)

你会如何解决这个错误?

Von*_*onC 48

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

一种替代方法(类似于此错误)是使用该-d选项(请参阅go get命令)

go get -d
Run Code Online (Sandbox Code Playgroud)

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

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


但更一般地说,如本主题所述:

go get 是用于包,而不是用于存储库.

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

go get code.google.com/p/go.text/encoding
Run Code Online (Sandbox Code Playgroud)

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

go get code.google.com/p/go.text/...
Run Code Online (Sandbox Code Playgroud)

  • 我自己还有这个问题.我似乎无法"去获取"任何远程包.我总是得到``没有可构建的Go源文件. (2认同)

Bur*_*rtK 31

你应该检查$ GOPATH目录.如果包名称有空目录,$GOPATH则不从存储库下载包.例如,如果我想从github存储库获取"github.com/googollee/go-socket.io"包并且go get$ GOPATH中已经有一个空目录,github.com/googollee/go-socket.io则不下载包然后抱怨没有可构建的Go目录中的源文件.首先删除一个空目录.

  • 这是我的问题,非常感谢! (3认同)

Joa*_*sta 12

消息的另一个可能原因:

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

是否正在编译的源文件具有:

// +build ignore
Run Code Online (Sandbox Code Playgroud)

在这种情况下,文件被忽略,不能按要求构建.这种行为记录在https://golang.org/pkg/go/build/


Don*_*Lee 6

为了我的情况解决这个问题:

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

错误:

go get github.com/garyburd/redigo
Run Code Online (Sandbox Code Playgroud)

正确:

go get github.com/garyburd/redigo/redis
Run Code Online (Sandbox Code Playgroud)