ホームページ > バックエンド開発 > Golang > Go が「非ローカル パッケージのローカル インポート」エラーを返すのはなぜですか?またその解決方法は何ですか?

Go が「非ローカル パッケージのローカル インポート」エラーを返すのはなぜですか?またその解決方法は何ですか?

Patricia Arquette
リリース: 2024-12-13 19:34:23
オリジナル
310 人が閲覧しました

Why Does Go Return a

Go パッケージのローカル インポート

Go では、import ステートメントを使用してパッケージをインポートします。パッケージは、コードを論理ユニットに編成するために使用されます。パッケージをインポートするときは、ローカル インポートまたは非ローカル インポートを使用できます。

ローカル インポートでは、現在の作業ディレクトリからパッケージがインポートされます。非ローカルインポートでは、別のディレクトリからパッケージがインポートされます。

エラー

次のファイル構造です:

.
├── bin
│   └── hello
├── pkg
└── src
    └── jacob.uk.com
        ├── greeting
        │   └── greeting.go
        └── helloworld.go
ログイン後にコピー

次の GOPATH:

/Users/clarkj84/Desktop/LearningGo
ログイン後にコピー

src内で以下のコマンドを実行するとフォルダー:

/usr/local/go/bin/go install jacob.uk.com
ログイン後にコピー

次のエラーが表示されます:

local import "./greeting" in non-local package
ログイン後にコピー

このエラーは、ローカル以外のパッケージでローカル インポートを使用しているために発生します。

解決策

このエラーを修正するには、作業ディレクトリを src/jacob.uk.com に変更し、go install を実行せずに実行します。パッケージを指定します。次の内容を含む helloworld.go ファイルがある場合:

package main

import "./greeting"

func main() {

}
ログイン後にコピー

「インポートされ、使用されていません」というコンパイル エラーが発生します。インポートされたグリーティング パッケージの何かを使用すると、コンパイルされるはずです。

ただし、ローカル インポートの使用はお勧めしません。代わりに、次の import ステートメントを使用する必要があります:

import "jacob.uk.com/greeting"
ログイン後にコピー

この import ステートメントを使用すると、どこからでもコードをコンパイル、実行、インストールできるようになります。

以上がGo が「非ローカル パッケージのローカル インポート」エラーを返すのはなぜですか?またその解決方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート