eclipse中的相​​对导入和包结构?

时间:2015-02-11 18:50:48

标签: eclipse python-2.7 package

我遇到相对导入问题,但我认为是因为我不完全理解包结构。

例如,这是我的包结构。

neo_autorig/                          Source folder, Top level
      __init__.py               
      basic/                  Subpackage for basic utiltites for the script
              __init__.py
              name.py

      name_test.py
      module_locator.py

不仅仅是这个,但这基本上就是我用于进口的东西

在name.py中我使用

导入模块定位器
from .. import module_locator

但它说

# Error: line 1: Attempted relative import beyond toplevel package

顶级脚本(比如我的主脚本/用于执行所有内容的ui)是否应该放在eclipse包中的顶级源文件夹中?或者我说错了。源文件夹中还有其他子包,每个包都包含脚本。

编辑:如果我把另一个包放在一个子包中,我可以相对导入,它只是我不能从子包相关导入到顶级包的情况,脚本源是我的python路径。

1 个答案:

答案 0 :(得分:1)

python导入机制与文件的__name__一起使用。直接执行文件会为文件指定名称"__main__",而不是通常的名称。这样的问题的常见答案是使用-m选项运行程序。我建议您同时阅读pep 366thisthis个问题。