私は python を試しており、主に他の人のコードのトラブルシューティングを行っています。プログラムを実行しようとしています " path\folderA\program.py
"。
私はからプログラムを実行していますpath\folderA
エラーが発生します:
ImportError: No module named fff.ggg.ppp
program.py にはインポートが含まれています。
from fff.ggg.ppp import mmm
フォルダ "path\folderB" には次のものがあります: " path\folderB\fff\__init__.py
" " path\folderB\fff\ggg
"
フォルダーggg
には __init__.py
、プログラムだけでなく、ppp.py
Python エラー "ImportError: No module named"のような他の投稿を読んで、フォルダを「パッケージ」にして、そこからのインポートを可能にすることを理解してい__init__.py
ますが、エラーが発生しているため、機能しません。
これは、これらのプロジェクトで働いていた他の人々のために働いていたので、私の設定に何か問題があります.
ディレクトリがsys.pathにある必要があることについて何かを読みました。それは、それらを環境変数パスに追加する必要があるということですか? ただし、それは多くのディレクトリを PATH に追加することを意味するため、それはできません。
それで、次のことも見つけました。
import sys
sys.path.append( <path to FolderB> )
しかし、それはコードを変更することを意味し (これは他の人にとっては必要ありませんでした)、ローカル マシン上のパスをハード コーディングする必要があります。
私はそれを視覚化することはできません-明らかに、コードを変更してインポートモジュールへの物理パスをハードコードすることは想定されていません-それで、 folderA のプログラムが folderB で import を探すことをどのように知ることができますか?
魔法の仕組みは__init__.py
?