数時間後、アプリケーションのバグの原因を発見しました。私のアプリのソースは次のように構成されています。
main/
__init__.py
folderA/
__init__.py
fileA.py
fileB.py
実際には、あと 50 個ほどのファイルがあります。しかし、それは重要ではありません。にはmain/__init__.py
、次のコードがあります。from folderA.fileA import *
folderA/__init__.py
私はこのコードを持っています:
sys.path.append(pathToFolderA)
folderA/fileB.py
私はこのコードを持っています:
from fileA import *
問題は、fileA が 2 回インポートされることです。ただし、一度だけインポートしたいです。
これを修正する明白な方法 (少なくとも私にとって) は、特定のパスを から に変更することですpath
。folderA.path
しかし、そもそもPythonでこのエラーが発生するべきではないと思います。各ファイルが絶対的な場所を知る必要がない他の回避策はありますか?