2011-05-25 106 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