我的文件目录树是这个样子: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