2016-10-23 25 views
0

マイプロジェクトの構造は、このようなものです:Pythonのインポートエラー、見つけることができないモジュール

dir A/ 
    main.py 
    __init__.py 
    modules/ 
     a.py 
     __init__.py 
     components/ 
      b.py 
      c.py 
      __init__.py 

main.pyでは、私はfrom modules.a import xxxを書きました。 a.pyでは、モジュールb.pyをインポートし、b.pyに、c.pyをインポートしたいと思います。

from components.b import xxxa.pyに書きました。main.pyを実行したときにインポートエラーが発生しました。 にfrom c import xxxと書いても同じエラーが出ます。しかし、b.pyを直接実行した場合、うまくいった。私は何度も試してみたところ、dir Aをルートディレクトリとみなしてすべての読み込み文を書く必要があることがわかりました。たとえば、にfrom modules.components.b import xxxと書いてb.pyfrom modules.components.c import xxxと書き込むと、プログラムはうまくいっています。

誰かが、環境の変化の経路がこの問題を解決できると言います。しかし、プロジェクト全体の位置を変えたら、何度も何度もパスを設定する必要はありませんか?

適切な解決策はありますか?誰かの助けを聞いてうれしく思います。

答えて

0

Relative imports.

from .components.b import xxx 
+0

どうもありがとう! :)私はとても愚かです。 – LuCima

関連する問題