Go でのローカル パッケージのインポート
Go でローカライズされたコードを使用する場合、ローカル パッケージのインポートで問題が発生することがあります。一般的な問題とその解決策の詳細な分析は次のとおりです:
問題:
「/home/me/」にあるパッケージのインポート ステートメントをローカライズしようとしていますgo/src/myapp" には次の変更が加えられました:
import ( "./common" "./routers" )
ただし、"go install myapp" を実行すると、次のエラーが発生しました:
can't load package: /home/me/go/src/myapp/main.go:7:3: local import "./common" in non-local package
さらに、「./」プレフィックスなしで「common」と「routers」を使用すると、次の結果が発生しました:
myapp/main.go:7:3: cannot find package "common" in any of: /usr/local/go/src/common (from $GOROOT) /home/me/go/src/common (from $GOPATH) myapp/main.go:8:2: cannot find package "routers" in any of: /usr/local/go/src/routers (from $GOROOT) /home/me/go/src/routers (from $GOPATH)
解決策:
この問題は Go のインポート パス規則に起因します。 Go のインポート開始ディレクトリは「$HOME/go/src」です。これを解決するには、インポート ステートメントのパッケージ名に「myapp」プレフィックスを追加するだけです。
import ( "log" "net/http" "myapp/common" "myapp/routers" )
この変更により、インポート パスが正しいことが保証され、コンパイル中に発生したエラーが解決されます。
以上がGo でローカル パッケージを正しくインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。