さまざまなフォルダーからファイルを操作する場合、あるファイルから別のファイルに関数をインポートするのは困難な場合があります。これはさまざまなディレクトリ構造で発生し、多くの場合、ネストされたフォルダーや複数のファイルが関係します。
以下のディレクトリ構造を考えてみましょう。
application ├── app │ └── folder │ └── file.py └── app2 └── some_folder └── some_file.py
このシナリオでは、関数をインポートするにはどうすればよいですか (例: func_name) が some_file.py 内から file.py で定義されていますか? from application.app.folder.file import func_name という直感的な方法はもっともらしく思えるかもしれませんが、多くの場合エラーが発生します。
デフォルトでは、Python はエントリポイント スクリプト (実行されるスクリプト) が存在するディレクトリのみを検査します。と、パッケージのインストールへのパスを含む sys.path が存在します。必要なファイルがこれらの場所以外にある場合、インポートは失敗します。
ただし、Python の検索パスを動的に拡張することは可能です。
# some_file.py import sys # appending search path sys.path.insert(1, '/path/to/application/app/folder') # importing file and function import file func_name()
file.py を含むディレクトリを次のように挿入します。検索パスを指定すると、Python はそれを正常にインポートできるようになります。このアプローチにより、異なるディレクトリにまたがるファイルを柔軟に処理できるため、分離されたファイル構造を扱う場合に有益なソリューションとなります。
以上がPython で別のディレクトリから関数をインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。