パッケージを読み込めません:パッケージ。:ビルド可能なGoソースファイルがありません


81

エラーメッセージは次のとおりです。

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

% echo $GOPATH     
/Users/7yan00/Golang

そのエラーをどのようにトラブルシューティングしますか?

回答:


52

Goプロジェクトのソースフォルダー(など/Users/7yan00/Golang/src/myProject)でそのコマンドを使用していることを確認してください。

1つの代替方法(このバグと同様)は、-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/...

そのコマンドを実行したとき、どのフォルダーに@ 7yan00がありましたか?どのバージョンのgoを使用していますか?どのOSで?「動かない」とは、go getコマンドがハングし、フリーズしているように見え、二度と戻らないことを意味しますか?
vonC 2014年

2
私はまだこの問題を抱えています。go getリモートパッケージには見えません。私はいつも得るno buildable Go source files in
アワーバック2014年

32

$GOPATHディレクトリを確認する必要があります。パッケージ名の空のディレクトリがある場合はgo get、リポジトリからパッケージをダウンロードしません。

たとえば、github.com/googollee/go-socket.iogithubリポジトリからパッケージを取得したいが、にすでに空のディレクトリgithub.com/googollee/go-socket.ioがある$GOPATH場合、パッケージをダウンロードgo get せず、ディレクトリにビルド可能なGoソースファイルがないと文句を言います。まず、空のディレクトリを削除します。


1
おかげで、私は/usr/local/go/src/github.com/GIT_PROJECT_NAMEを削除する必要がありました
Baroudi Safwen 2017年

13

メッセージのもう1つの考えられる理由:

パッケージを読み込めません:....:ビルド可能なGoソースファイルがありません

コンパイルされているソースファイルが次の場合です。

// +build ignore

この場合、ファイルは無視され、要求どおりにビルドできません。この動作はhttps://golang.org/pkg/go/build/に記載されています。


1
これは私の場合でした。プロジェクトはビルドタグを使用して、ビルドするバイナリに機能を含めたり除外したりし、パッケージ内のすべてのファイルに// +build myfeatureタグが付いていました。回避策は、パッケージ宣言(つまり、package myfeature)のみを含むdummy.goというファイルをパッケージに追加することでした。
mmindenhall 2017

1
ヒントをありがとう、私の場合は // +build !windows
mx1up 2017年

同様に、最近// +build go1.9、go1.8でビルドしようとしたときに、このエラーの原因となっているに遭遇しました
2018

1
これは、Goエラーメッセージではるかに説明的かつ具体的である必要があることをより証明しています。現在、それは急速な発展を助長していません。
J.スコットElblein

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ファイルはなく、実際にはもっと多くのディレクトリがあることがわかりました。ですから、それは私にとっては間違いというよりはむしろ赤いニシンでした。

私はすることをお勧めします

環境に行く

そして、すべてが正常であることを確認し、OSの環境変数をチェックし、シェル(bashまたはw / e)が.bash_profileまたは.bashrcファイルなどを介してそれを危険にさらしていないことを確認します。幸運を。


0

modからパッケージをダウンロードしてみることができます

go get -v all

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.