ホームページ >バックエンド開発 >Python チュートリアル >Python で兄弟パッケージからモジュールを簡単にインポートするにはどうすればよいですか?

Python で兄弟パッケージからモジュールを簡単にインポートするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-19 21:13:19372ブラウズ

How Can I Easily Import Modules from Sibling Packages in Python?

兄弟パッケージのインポート

Python パッケージを使用する場合、兄弟パッケージからモジュールをインポートすることが困難になる場合があります。 sys.path の操作を伴う従来の方法は、煩雑でエラーが発生しやすい可能性があります。ここでは、より直接的なアプローチとして Python の最新のパッケージ化ツールを活用したソリューションを紹介します。

関係する手順

1. pyproject.toml ファイルを作成します

プロジェクト ディレクトリのルートに、次の最小限の内容を含む pyproject.toml ファイルを作成します:

[project]
name = "myproject"
version = "0.1.0"
description = "My small project"

[build-system]
build-backend = "flit_core.buildapi"
requires = ["flit_core >=3.2,<4"]

2 。仮想環境をアクティブ化する (オプション)

必須ではありませんが、仮想環境をアクティブ化すると、プロジェクト固有の依存関係がグローバル Python 環境から確実に分離されます。仮想環境を作成してアクティブ化するには:

  • 仮想環境を作成します:

    python -m venv venv
  • 仮想環境をアクティブ化します:
  • Linux およびmacOS: ソース ./venv/bin/activate
  • Windows: .venvScriptsactivate

3.パッケージを編集可能な状態でインストールします

プロジェクト ディレクトリのルートで、-e フラグを指定した pip を使用してパッケージをインストールし、編集可能モードを有効にします。

pip install -e .

< h3>4.兄弟パッケージの接頭辞を持つモジュールをインポート

兄弟パッケージからモジュールをインポートするには、インポートに接頭辞としてパッケージ名を追加します。たとえば、兄弟パッケージから api という名前のモジュールをインポートするには、次を使用します:

from myproject.api import api_module

使用例

次のプロジェクト構造を検討してください:

- api
  - api.py
- examples
  - example_one.py
- tests
  - test_one.py

提案されたソリューションでは、example_one.py から API モジュールをインポートし、 test_one.py は次のようになります:

example_one.py:

from myproject.api import api_module

test_one.py:

from myproject.api import api_module

def test_function():
    print(api_module.function_from_api())

if __name__ == '__main__':
    test_function()

test_one.py を実行すると、次の関数で function_from_api() 関数が正常に呼び出されるようになります。 API モジュール。

以上がPython で兄弟パッケージからモジュールを簡単にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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