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


80

这是错误消息:

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

% echo $GOPATH     
/Users/7yan00/Golang

您将如何解决该错误?

Answers:


51

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

一种替代方法(类似于此bug)是使用-d选项(请参见go getcommand

go get -d

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

看看是否对您有帮助。


但更一般地,如该线程中所述

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

因此,如果您想要一个特定的软件包,例如,请go.text/encoding使用

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

如果您希望该存储库中的所有软件包,请使用...来表示:

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

运行该命令时,您在哪个文件夹中的@ 7yan00?您正在使用哪个版本的go?在什么操作系统上?通过“不移动”,您是说go get命令挂起,似乎冻结并且永不返回吗?
VonC 2014年

2
我自己仍然有这个问题。我似乎没有go get任何远程软件包。我总是得到no buildable Go source files in
小时制,2014年

32

您应该检查$GOPATH目录。如果软件包名称的目录为空,go get则不要从存储库下载软件包。

例如,如果我想要得到的github.com/googollee/go-socket.io,从它的github上库包,并且已经有一个空的目录github.com/googollee/go-socket.io$GOPATHgo get 并没有下载包,然后抱怨说在目录中没有的可建围棋源文件。首先删除任何空目录。


1
谢谢,我不得不删除/usr/local/go/src/github.com/GIT_PROJECT_NAME
Baroudi Safwen

13

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

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

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

// +build ignore

在这种情况下,文件将被忽略并且无法按要求进行构建。此行为记录在https://golang.org/pkg/go/build/


1
对我来说就是这种情况-该项目使用构建标签在我们构建的二进制文件中包含或排除功能,并且包中的每个文件都具有// +build myfeature标签。解决方法是在程序包中添加一个名为dummy.go的文件,该文件只包含程序包声明(即package myfeature)。
mmindenhall

1
感谢您的提示,在我的情况下是 // +build !windows
mx1up

同样,我最近// +build go1.9在尝试使用go1.8进行构建时遇到了一个导致此错误的问题
thurt

1
这更证明Go确实需要在错误消息中更具描述性和特定性。当前,这不利于快速发展。
J. Scott Elblein '19年

6

要针对我的情况解决此问题:

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

错误:

go get github.com/garyburd/redigo

正确:

go get github.com/garyburd/redigo/redis

3

如果您希望该存储库中的所有软件包,请使用...表示该软件包,例如:

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

0

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

我建议做

去环境

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


0

您可以尝试从国防部下载软件包

go get -v all

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.