別のフォルダからファイルをインポートする 質問する

別のフォルダからファイルをインポートする 質問する

フォルダ構造は次のようになります:

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

file.pyから、内から関数をインポートするにはどうすればよいでしょうかsome_file.py? 試したのは:

from application.app.folder.file import func_name

しかし、それは機能しません。

ベストアンサー1

注: この回答は非常に具体的な質問に対するものです。検索エンジンからここに来るほとんどのプログラマーにとって、これは探している回答ではありません。通常は、検索パスを変更するのではなく、ファイルをパッケージに構造化します (他の回答を参照)。


デフォルトではできません。ファイルをインポートする際、Pythonはエントリポイントスクリプトが実行されているディレクトリのみを検索し、sys.pathその中にはパッケージのインストールディレクトリ(実際にはもう少し複雑これよりは難しいですが、これでほとんどのケースをカバーできます。

ただし、実行時に Python パスに追加することができます。

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

import file

おすすめ記事