ホームページ >バックエンド開発 >Golang >Go でローカル パッケージを正しくインポートするにはどうすればよいですか?

Go でローカル パッケージを正しくインポートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-28 19:24:11222ブラウズ

How to Correctly Import Local Packages in Go?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。