【问题标题】:Relative imports and package structure in eclipse?eclipse中的相​​对导入和包结构?
【发布时间】:2015-04-12 06:49:33
【问题描述】:

我在相对导入方面遇到了麻烦,但我认为这是因为我没有完全理解包结构。

例如,这是我的包结构。

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 路径中。

【问题讨论】:

    标签: eclipse python-2.7 package


    【解决方案1】:

    python 导入机制适用于文件的__name__。直接执行文件会给文件名称"__main__",而不是通常的名称。此类问题的常见答案是使用 -m 选项运行程序。我建议阅读pep 366,也许还有thisthis 问题。

    【讨论】:

      猜你喜欢
      • 2022-12-11
      • 2019-05-14
      • 1970-01-01
      • 2012-11-13
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      相关资源
      最近更新 更多