フォークされた Go プロジェクトで「内部パッケージの使用は許可されていません」エラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-10-26 01:48:28
オリジナル
957 人が閲覧しました

 Why is

Go: フォークされたプロジェクトの「内部パッケージの使用は許可されていません」エラーについて

フォークされた Go リポジトリを使用する場合は、次のことを理解することが重要ですリポジトリ構造と依存関係パスの影響。

ベース リポジトリ「ethereum/go-ethereum」から派生した、「zoono/go-ethereum」などのフォークされたリポジトリを考えてみましょう。 「go test .」の実行中に発生したエラー:

eth/api.go:37:2: use of internal package not allowed
ログイン後にコピー

は、コードが元のリポジトリ内の内部パッケージ、つまり「github.com/ethereum/go-ethereum/internal/ethapi」にアクセスしようとしていることを示します。 ."

フォークと依存関係のパス

正常に動作するために、Go プロジェクトとその依存関係は特定のディレクトリ構造とインポート パスに従います。リポジトリをフォークしても、コード内の依存関係パスは変更されません。依存関係パスは通常、元のリポジトリを基準にしています。依存関係パスが有効ではなくなったため、フォークされたコードに対してテストを実行しようとすると、エラーが発生します。

エラーへの対処

このエラーを解決するには、フォークされたリポジトリ内で元のリポジトリのディレクトリ構造を維持することが重要です。さらに、コード内のパッケージ インポート パスが、元のリポジトリではなくフォークされたリポジトリを反映していることを確認してください。これには以下が含まれます:

  1. 正しいディレクトリ構造でフォークされたリポジトリのクローンを作成します:

    export GOPATH=$HOME/gocodez
    mkdir -p $GOPATH/src/github.com/zoono
    cd $GOPATH/src/github.com/zoono
    git clone [email protected]:<username>/go-ethereum
    ログイン後にコピー
  2. コード内のパッケージ インポート パスを変更して、フォークされたリポジトリ:

    // Before
    import "github.com/ethereum/go-ethereum/internal/ethapi"
    
    // After
    import "github.com/zoono/go-ethereum/internal/ethapi"
    ログイン後にコピー

これらのガイドラインに従うことで、Go リポジトリを効果的にフォークして操作し、コードのシームレスなテストと実行を保証できます。

以上がフォークされた Go プロジェクトで「内部パッケージの使用は許可されていません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!