我在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
有關?