我在sys.path
中看到一些其他项目,其中1)不存在,2)导致进口问题(具体为Nose
)。为什么sys.path显示不存在的项目(这会导致导入问题)?
基本上,我创建了一个包(我们称之为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
不存在。如果我弹出关闭sys.path
的前2条,一切正常。
有人可以向我解释为什么这些项目显示出来的时候,实际上唯一应该在列表中的是安装到virtualenv中的那个?
如何阻止未来发生这种情况?是否与foo
中的setup.py
有关?