サブパッケージ/ディレクトリ内のファイルから関数を呼び出す必要のあるファイルがあるプロジェクトで作業しています。同じサブパッケージ内の別のファイルから関数を呼び出しています。したがって、サブファイルをインポートするメインファイルがあります。このサブファイルは、同じパッケージ内にある別のサブファイルもインポートしています。同じパッケージから別のファイルをインポートしているパッケージからファイルをインポートする方法
最初のサブファイルは、2番目のサブファイルをインポートする際に何も問題はありません。メインファイルには、最初のサブファイルをインポートする際の問題もありません。しかし、すべてをまとめてメインファイルを実行すると、Pythonは2番目のサブファイルが存在しないと思います。これは奇妙なものです。私は単純化され、以下の例で私の問題を可視化しました:
I以下のファイル階層があります。
test_package\
__init__.py
main_file.py
test_sub_package\
__init__.py
subfile1.py
subfile2.py
main_fileコード:
import test_sub_package.subfile1
subfile1コード:
import subfile2
を
サブファイル2コード:
def get_string():
return ("Hello, World!")
したがって、mainfileがsubfile1を介してsubfile2をインポートすると思います。しかし、これは私がエラーを取得するため、場合ではないようです。
Traceback (most recent call last):
File "...\Test\main_file.py", line 1, in <module>
import test_package.subfile1
File "...\Test\test_sub_package\subfile1.py", line 1, in <module>
import subfile2
ModuleNotFoundError: No module named 'subfile2'
私は、私もsubfile2で機能を呼び出すしようとする前に、私はこのエラーを得たことを少し驚きました。いずれにせよ、私はなぜこれがうまくいかないのか混乱しています。私はちょうどここで愚かなことをやっているのですか、何かをしようとすると、基本的にPythonはサポートしていません。誰かが私に解決策を与えることができれば、それは最も高く評価されるだろう。
これはおそらく重複していると思われますが、私の特定の問題に対する回答が見つかりませんでした。だから、事前に申し訳ありません。
は、 –
がためにあなたと題し、質問への回答を見て[相対輸入品をお持ちの輸入test_sub_package.subfile2' 'へのインポートを変更してみてください)
from . import test_sub_package.subfile1
へ10億回](https://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time)? – martineau@martineauどのように私はこれを逃したのか分かりません。私は、私が探していた重要な用語を知らなかったと思う:P。とにかくこれは素晴らしいリンクです、ありがとう。 – daydreamingwill