重複の可能性:
Pythonパッケージ構造
こんにちは、メインファイルのルートの下にあるサブディレクトリにあるPythonファイルをインポートしようとしています。例えば
import ../library/utils.py
それをコードに入れて実行すると、コンパイルエラーが発生します。
メインファイルのルートディレクトリの下からファイルを含める方法はありますか、それともルートのサブディレクトリにある必要がありますか?
ご協力いただきありがとうございます。
重複の可能性:
Pythonパッケージ構造
こんにちは、メインファイルのルートの下にあるサブディレクトリにあるPythonファイルをインポートしようとしています。例えば
import ../library/utils.py
それをコードに入れて実行すると、コンパイルエラーが発生します。
メインファイルのルートディレクトリの下からファイルを含める方法はありますか、それともルートのサブディレクトリにある必要がありますか?
ご協力いただきありがとうございます。
ファイルをインポートするのではなく、モジュールをインポートします。sys.path
それに応じて変更し、import utils
たとえば
import sys
sys.path.append('../library')
import utils
import sys, os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'library')))
import utils
これにより、ファイルを検索するためのディレクトリを含むsys.path変数が変更されます。また、次のように実行した場合でも、正しく検出されることを確認します。
$ python the_file.py
$ python ../the_file.py
$ python /somewhere/over/the_file.py
これは、開発中、テスト中、トレーニング中のもので機能します。インストールされたファイルはそのような構成を必要としません。