0

私は持っている

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

間違いなく初歩的なミスです。しかし、何が問題なのかわかりません。

4

2 に答える 2

5

上記のように実行しようとするとimport lib、Python は現在のディレクトリから始めてインポートを見つけようとします (したがって、たとえば、ディレクトリにいる場合は、インポートを見つけてmyapp実行lib.pyできますimport lib)。ただし、パッケージ (基本的には を含むもの__init__.py) 内でインポートする場合は、明示的なパッケージ インポート ( などfrom myapp import lib) を使用して、Python インタープリターがどこを見ればよいかを認識できるようにする必要があります。これには、名前空間の競合を回避するという利点もありますlib(つまり、別のフォルダーにいたlib.py場合)。

結論: に置き換えるimport libfrom myapp import lib、うまくいきます。

于 2013-06-08T09:08:39.340 に答える
1

You should add __init__.py file in tests/ directory.

于 2013-06-08T07:45:02.687 に答える