ホームページ >バックエンド開発 >Python チュートリアル >Python でネストされたフォルダーからモジュールをインポートするにはどうすればよいですか?

Python でネストされたフォルダーからモジュールをインポートするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-23 09:10:45569ブラウズ

How Can I Import a Module from a Nested Folder in Python?

ネストされたフォルダーからのモジュールのインポート

プロジェクト内の異なるフォルダーからファイルをインポートすることは、Python では困難な場合があります。シナリオとその解決策を見てみましょう。

質問:

次のフォルダー構造を考えてみましょう:

application
├── app
│   └── folder
│       └── file.py
└── app2
    └── some_folder
        └── some_file.py

という名前の関数をインポートするにはどうすればよいですか? file.py からの func_name へsome_file.py?

答え:

from application.app.folder.file import func_name を使用する一般的なアプローチは機能しません。これは、Python のデフォルトのインポート検索パスにサブディレクトリが含まれていないためです。

解決策:

この制限を回避するには、以下を追加することで実行時に Python 検索パスを変更できます。モジュールをインポートする前に、必要なディレクトリを sys.path に追加します。以下は some_file.py の例です:

import sys
# Caution: path[0] is reserved for the script path or '' in REPL
sys.path.insert(1, '/path/to/application/app/folder')

import file

これにより、インポートされたモジュールから次のように関数にアクセスできるようになります:

file.func_name()

注:

このアプローチは、非常に特殊なシナリオを対象としています。通常、コードをパッケージに構造化することは、モジュール性と保守性を考慮するとより好ましいソリューションです。

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

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