次のような単純なディレクトリ構造を持っています。
MyProject
--main.py
--lib #that's a directory/package
----__init__.py
----view.py
----common_lib.py
----other irrelevant modules...
main.py で:
from lib import view
次のエラーが発生します。
ImportError: cannot import name view
代わりに、次のように書きます。
from lib.view import *
このインポートは成功しますが、view.py で次の失敗が発生します。
from common_lib import Comments, Locations, ScreenData, ProgressSignal
原因:
ImportError: No module named 'common_lib'
また、ディレクトリ構造からわかるように、common_lib.py は view.py と同じディレクトリにありますが、なぜ見つからないのでしょうか? 「from x import y」が機能せず、「from xy import *」が機能するのはなぜですか? ' __init__.py
' は完全に空です。そして、私はPython 3.3 32ビットを使用しています。
さらに厄介なのは、この同じプログラムが 2 日前に機能していたことです。IDLE でいくつかのコードをテストしていて、コードをプロジェクトに含める準備ができていると思ったときに、それを PyDev に貼り付けたところ、このエラーにショックを受けました。ディレクトリやモジュールについては何も変更しませんでした。
また、さらに奇妙なことに、view.py と common_lib.py をスタンドアロンとして (インポートせずに) 実行すると、問題なく動作します。問題が実際に存在する場合は、エラーが発生するはずです。
ありがとう。どんなアドバイスでも大歓迎です。