ホームページ > バックエンド開発 > Python チュートリアル > 「sys.path」ハックを使用せずに兄弟パッケージからインポートする方法?

「sys.path」ハックを使用せずに兄弟パッケージからインポートする方法?

Linda Hamilton
リリース: 2024-12-08 15:56:13
オリジナル
267 人が閲覧しました

How to Import from Sibling Packages Without Using `sys.path` Hacks?

兄弟パッケージのインポート: sys.path ハックを回避するソリューション

兄弟パッケージからのインポートは、コードベースを整理する際に課題となる可能性があります。 sys.path.append ハックは回避策を提供しますが、これらの煩わしい挿入の必要性を排除する、より洗練されたソリューションがあります。

手順:

  1. pyproject.toml を作成します。ファイル:
    パッケージのメタデータと依存関係を定義します。 pyproject.toml ファイル。
  2. 仮想環境を使用する:
    仮想環境を作成して、プロジェクトをシステムの依存関係から分離します。
  3. プロジェクトを次の場所にインストールします。編集可能な状態:
    pip と -e フラグを使用して、パッケージを編集可能な状態でインストールします。変更が自動的に反映されるようにします。
  4. インポートの変更:
    myproject を先頭に追加します。以前に失敗していたインポートへのインポート (例: myproject.api import function_name.

例:

) 次のファイルを考えてみましょう。構造:

  • api/api.py
  • examples/example_one.py
  • tests/test _one.py
  • pyproject.toml

api.py:

def function_from_api():
    return 'I am the return value from api.api!'
ログイン後にコピー

test_one.py:

from myproject.api.api import function_from_api

def test_function():
    print(function_from_api())

if __name__ == '__main__':
    test_function()
ログイン後にコピー

へtest_one.py を実行し、myproject が編集可能な状態でインストールされていることを確認します。次に、

python myproject/tests/test_one.py
ログイン後にコピー

を実行します。「I am the return value from api.api!」という出力が表示されます。

結論:

このメソッドにより、次のことが可能になります。 sys.path.append のようなハッキングなソリューションに頼らずに兄弟パッケージからインポートします。 pyproject.toml と編集可能なインストールを活用することで、簡単な拡張性とテストを容易にしながら、クリーンでモジュール式のコードベースを維持できます。

以上が「sys.path」ハックを使用せずに兄弟パッケージからインポートする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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