Go でコード パッケージをローカライズする場合、それらのインポートが困難になることがあります。この質問では、開発者が相対パスを使用してローカル パッケージをインポートしようとしているときにエラーが発生する問題について説明します。
提供された例では、開発者はローカル パッケージの共通とルーターを /home/me/go/ からインポートしようとしました。相対インポートステートメントを使用した src/myapp ディレクトリ。ただし、これらのインポートは、ローカル以外のパッケージではローカル インポートが許可されていないことを示すエラーで失敗しました。
さらに、相対パスなしでパッケージ名を使用すると、コンパイラはパッケージが見つからないことを報告しました。
解決策は、Go インポート パスを理解することにあります。デフォルトでは、Go はインポート検索パスを $HOME/go/src から開始します。これは、パッケージがこのディレクトリの直下またはサブディレクトリ内に配置される必要があることを意味します。
この場合、ローカル パッケージの common およびルーターは $HOME/go/src の直下には配置されません。インポートの問題を解決するには、開発者はパッケージのインポート パスの先頭にプロジェクト名 myapp を追加する必要があります。
したがって、正しいインポート ステートメントは次のようになります。
import ( "log" "net/http" "myapp/common" "myapp/routers" )
この変更により、 Go インポート パスはローカル パッケージに正しく解決され、エラーが解消されます。
以上が相対パスを使用して Go でローカル パッケージを正しくインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。