Python 为什么sys.path显示不存在的项(导致导入问题)?

Python 为什么sys.path显示不存在的项(导致导入问题)?,python,egg,Python,Egg,我在sys.path中看到一些附加项,其中1不存在,2导致导入问题,特别是Nose 基本上,我已经创建了一个名为foo的包,我在多个项目中使用它。我目前正在进行的项目可以毫无问题地从foo导入所有内容,但当我运行Nose时,会出现导入错误: E ====================================================================== ERROR: Failure: ImportError (No module named foo) ------

我在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)
/路径/to/my project/foo不存在。如果我弹出sys.path的前两个条目,一切正常

有人能向我解释为什么这些项目会出现,而实际上,列表中唯一应该出现的是安装到virtualenv中的项目吗

我如何阻止这种情况在未来发生?这与foo中的setup.py有关吗?

您有$PYTHONPATH中的任何内容吗?这将在sys.path中放置条目,即使在VirtualEnvironment中也是如此

如果使用bash,请尝试在bash中取消设置PYTHONPATH,然后查看sys.path包含的内容。

在路径上的任何位置查找.pth文件。这些文件(例如easy-install.pth)可以包含额外的sys.path条目,每行一个条目

["/path/to/my-project/foo", 
 "/path/to/my-project/foo", 
 ..., 
 "/usr/virtualenvs/my-project/lib/python2.6/site-packages/foo-py2.6.egg", 
 ...]