我在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
不存在。如果我从sys.path
中弹出前两个条目,一切正常。
有人可以向我解释为什么这些项目出现的时候,真的,列表中应该只有一个是安装在virtualenv中的那个?
我如何阻止将来发生这种情况?是否与setup.py
中的foo
有关?
答案 0 :(得分:0)
$PYTHONPATH
中有什么内容吗?这将在sys.path中输入条目甚至在virtualenv环境中。
在bash中尝试unset PYTHONPATH
(如果您使用bash),然后查看sys.path
包含的内容。
答案 1 :(得分:0)
在路径上的任何位置查找.pth
个文件。这些文件(例如easy-install.pth
)可以包含其他sys.path条目(每行一个)。