我的文件目錄樹是這個樣子:Python的 「導入錯誤:沒有模塊名爲...」,但模塊存在
my_repo
├── experiments
│ ├── foo.py
│ └── __init__.py
└── tests
├── baz.py
└── __init__.py
裏面baz.py
,我嘗試
from experiments.foo import FooExperiment
,但我得到
*** ImportError: No module named experiments.foo
當我從終端(Mac OSX 10.9)打開python並運行
from experiments.foo import FooExperiment
類是正確導入。到底是怎麼回事?請幫忙。
在這兩種情況下sys.path
是完全一樣的,除非我在baz.py
當前路徑(至baz.py
)被包括在內。是的/path/to/my_repo
是我sys.path
爲好。
編輯:我的問題是與相互衝突的蛋文件,所以重新安裝的伎倆(下)。接受@奧斯汀馬歇爾的答案,但因爲這是解決這個問題的一般情況的可行解決方案。
pip uninstall my_repo
python setup.py develop --user
您可以包括當出現錯誤時,是否顯示'sys.path'?其他'experminets'軟件包或模塊是否可以放在'sys.path'中,它映射在'my_repo'中創建的'experiments'包? –
你如何運行'baz.py'?我看到它在測試目錄中,你是否使用py.test? – sax
@AnandSKumar沒有其他'experiments'包或模塊,但雞蛋文件被重複了三次:'/Users/my_name/Library/Python/2.7/lib/python/site-packages/experiments-0.0.1-py2.7 .egg'。這是一個問題嗎? – BoltzmannBrain