ホームページ >バックエンド開発 >Python チュートリアル >兄弟パッケージからインポートするときに「sys.path」ハッキングを回避するにはどうすればよいですか?
コマンド ラインからスクリプトを実行する場合、兄弟パッケージからモジュールをインポートすると、多くの場合問題が発生することがあります。これらの問題を軽減するために、不器用な sys.path.insert ハックの必要性を排除する代替ソリューションを紹介します。
コードを単一のフォルダーにパッケージ化し、次のように構造化します。以下:
<br>└── myproject</p> <pre class="brush:php;toolbar:false">├── api │ ├── api_key.py │ ├── api.py │ └── __init__.py ├── examples │ ├── example_one.py │ ├── example_two.py │ └── __init__.py ├── LICENCE.md ├── README.md └── tests ├── __init__.py └── test_one.py
さらに、pyproject を作成します。ルート フォルダー内の toml ファイルに記述します。 package.
パッケージをインポートできるようにするには、pip: を使用して編集可能な状態でインストールします。 p>
pip install -e .
パッケージからモジュールをインポートするとき、test_one.py に示すように、インポートの前に myproject. を付けます:< ;/p>
myproject.api.api インポートからfunction_from_api
このプレフィックスは、pyproject.toml ファイルと pip install がないと機能しないインポートにのみ必要であることに注意してください。
すべての必要な設定が完了したら、コマンド ラインからスクリプトを実行できます:
python .myprojectteststest_one.py
これにより、期待される結果が出力されるはずです。
私はからの戻り値ですapi.api!
これらの手順を組み込むことで、兄弟パッケージのインポートの問題が効果的に解決され、スクリプトをsys.path ハックに頼らずにコマンドラインを実行できます。
以上が兄弟パッケージからインポートするときに「sys.path」ハッキングを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。