私は持っている
myapp/
__init__.py
lib.py
tests/
lib_test.py
lib_test.py には次のものがあります。
import lib
myapp から実行する場合:
python tests/lib_test.py
エラーが発生する
ImportError: No module named lib
間違いなく初歩的なミスです。しかし、何が問題なのかわかりません。
私は持っている
myapp/
__init__.py
lib.py
tests/
lib_test.py
lib_test.py には次のものがあります。
import lib
myapp から実行する場合:
python tests/lib_test.py
エラーが発生する
ImportError: No module named lib
間違いなく初歩的なミスです。しかし、何が問題なのかわかりません。
上記のように実行しようとするとimport lib
、Python は現在のディレクトリから始めてインポートを見つけようとします (したがって、たとえば、ディレクトリにいる場合は、インポートを見つけてmyapp
実行lib.py
できますimport lib
)。ただし、パッケージ (基本的には を含むもの__init__.py
) 内でインポートする場合は、明示的なパッケージ インポート ( などfrom myapp import lib
) を使用して、Python インタープリターがどこを見ればよいかを認識できるようにする必要があります。これには、名前空間の競合を回避するという利点もありますlib
(つまり、別のフォルダーにいたlib.py
場合)。
結論: に置き換えるimport lib
とfrom myapp import lib
、うまくいきます。
You should add __init__.py
file in tests/
directory.