Go では、プロジェクトが GOPATH/src 内に存在する場合、ローカル パッケージのインポートに課題が生じる可能性がありますディレクトリ。この質問では、ローカル パッケージのインポートが GOPATH/src ディレクトリからは失敗するのに、ホーム ディレクトリに移動すると成功する理由を探ります。
問題の原因
次のときに発生したエラーです。 GOPATH/src からローカル パッケージをインポートしようとする主な原因は、相対インポート パスの使用です。相対インポート パスは、プロジェクト内のパッケージを参照する便利な方法を提供しますが、Go のビルド コマンドとインストール コマンドでは完全にはサポートされていません。
解決策
この問題を解決するにはの場合は、相対インポート パスの使用を避け、コードの構造化に関する Go プログラミング言語のガイドラインに従うことをお勧めします。これには、コードをパッケージの階層に編成し、それぞれに独自のディレクトリを設定し、絶対インポート パスを使用してこれらのパッケージを参照する必要があります。
例
次のプロジェクトを考えてみましょう。構造:
/usr/local/go/src/myproject - main.go - models - product.go
この構造では、main.go ファイルは絶対インポート パスを使用してモデル パッケージをインポートできます:
package main import ( "myproject/models" "fmt" "github.com/gin-gonic/gin" )
補足
これらのガイドラインに従うことで、GOPATH ディレクトリ内の場所に関係なく、ローカル パッケージを Go に正常にインポートできます。
以上がGo で GOPATH/src からローカル パッケージをインポートできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。