在当前结构中尝试相对导入非包错误

时间:2015-02-01 13:52:56

标签: python

我在这个import语句中得到“在非包中尝试相对导入”。这个问题在哪里?

from ..Resources.UniversalHelper.Helper import UniversalPageHelper

结构:

project/
        __init__.py
        MainFiles/
                  __init__.py
                  Main.py (where this from statement is being called)
        Resources/
                 __init__.py
                 UniversalHelper/
                                 __init__.py
                                 Helper.py

1 个答案:

答案 0 :(得分:3)

您在每个目录中放置__init__.py个文件并不重要。在我看来,导入Main.py是由某个地方import Main或通过运行脚本python project/MainFiles/Main.py完成的。

ValueError: Attempted relative import in non-package告诉您,Main未作为包结构的一部分加载。您需要将其导入为import project.MainFiles.Main之类的完整包,或将其作为模块python -m project.MainFiles.Main运行。

如果最后一个是您的问题,您还应该查看__main__.py