2011-05-25 64 views
1

我有一個文件:蟒蛇相對進口古怪

STARTDIR/module/submodule/config.py 

我有另外一個文件:

STARDIR/utils/filesys/getAbsPath.py 

爲什麼這一行工作,config.py

from ..utils.filesys import getAbsPath 

好像..module,不STARTDIRmodule中根本沒有utils。事實上,這樣做

from .. import utils 

產生

ImportError: cannot import name utils 
+0

什麼是你的Python路徑? (import sys; print sys.path) – 2011-05-25 15:14:11

回答

4

這應該工作:

from ...utils.filesystem import getAbsPath 

這是因爲:

  • from . import …STARTDIR/module/submodule/
  • 進口個
  • from .. import …STARTDIR/module/
  • from ... import …進口進口STARTDIR/
+0

它不會,因爲我在'STARTDIR'中啓動我的腳本(所以它將超出頂層模塊導入錯誤)。但我重新安排了我的代碼來完成這項工作。 – Claudiu 2011-05-25 15:33:50

+0

你是什麼意思,「自從我開始我的腳本」?喜歡,因爲STARTDIR不是Python模塊? – 2011-05-25 16:01:07

+0

是的。我正在運行的腳本在'STARTDIR/run.py'中。即使有'STARTDIR/__ init __。py','STARTDIR'也不會成爲模塊。 – Claudiu 2011-05-25 16:15:38