ホームページ >バックエンド開発 >Golang >Go で GOPATH/src からローカル パッケージをインポートできないのはなぜですか?

Go で GOPATH/src からローカル パッケージをインポートできないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 02:35:03232ブラウズ

Why Can't I Import Local Packages from GOPATH/src in Go?

Go でのローカル パッケージのインポート: GOPATH/src/プロジェクトのジレンマを回避する

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 build または go install を使用してプロジェクトを再構築し、変更を反映します。

これらのガイドラインに従うことで、GOPATH ディレクトリ内の場所に関係なく、ローカル パッケージを Go に正常にインポートできます。

以上がGo で GOPATH/src からローカル パッケージをインポートできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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