【发布时间】:2011-02-24 06:20:39
【问题描述】:
我在 sys.path 中看到了一些额外的项目,其中 1) 不存在和 2) 导致导入问题(特别是 Nose)。
基本上,我创建了一个在多个项目中使用的包(我们称之为foo)。我目前正在处理的项目可以毫无问题地从foo 导入所有内容,但是当我运行Nose 时出现导入错误:
E
======================================================================
ERROR: Failure: ImportError (No module named foo)
----------------------------------------------------------------------
Traceback (most recent call last):
...
File "/path/to/my-project/file.py", line 6, in <module>
from foo import *
ImportError: No module named foo
----------------------------------------------------------------------
Ran 1 test in 0.004s
FAILED (errors=1)
当我吐出我得到的路径时:
["/path/to/my-project/foo",
"/path/to/my-project/foo",
...,
"/usr/virtualenvs/my-project/lib/python2.6/site-packages/foo-py2.6.egg",
...]
/path/to/my-project/foo 不存在。如果我将前 2 个条目从 sys.path 中弹出,一切正常。
有人可以向我解释为什么这些项目会出现,而实际上,列表中唯一应该出现的项目是安装到 virtualenv 中的项目?
我该如何阻止这种情况在未来发生?和foo中的setup.py有关系吗?
【问题讨论】: