在level1/level2/bar.py
,試圖導入一個變量foo
從level1/foo.py
的時候,我發現了一個錯誤:的Python導入錯誤:沒有模塊名爲path.X,但可與nosetests
ImportError: No module named level1.foo
1級/ foo.py
bar = 123
1級/ 2級別/ bar.py
import level1.foo
print level1.foo.bar
但運行nosetests
定義在level1/level2/test_bar.py
,它能夠找到level1.foo.py
!
1級/級別2/test_bar.py
import level1.foo
def test_foobar():
print level1.foo.bar
爲什麼可能一個nosetest期間通過level1.foo
進口,但不能用常規的python腳本這樣做呢?
這裏是文件結構,每個目錄中也有__init__.py
文件。
Additionallly,我使用PyCharm的朋友似乎沒有遇到這樣的問題。 PyCharm是否會自動處理這些導入,但會在PyCharm之外打破,除非項目的根目錄被添加到PYTHONPATH
?