1

我看到了一些额外的项目,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 中的项目吗?

以及如何阻止这种情况在未来发生?和setup.pyin 有关系foo吗?

4

2 回答 2

0

你有东西$PYTHONPATH吗?即使在 virtualenv 环境中,这也会将条目放入 sys.path 中。

尝试unset PYTHONPATH使用 bash(如果您使用 bash),然后查看您sys.path包含的内容。

于 2010-05-26T16:01:31.900 回答
0

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

于 2010-05-26T20:26:24.293 回答