【问题标题】:Attempted relative import in non-package error in current structure尝试在当前结构中的非包错误中进行相对导入
【发布时间】:2015-03-31 13:17:25
【问题描述】:

我在此导入语句中得到“尝试在非包中进行相对导入”。问题出在哪里?

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

【问题讨论】:

  • 你有__init__文件吗?
  • 是在当前目录中的根目录(..)和资源目录。所有这些初始化文件都是空的。
  • 我知道它是重复的,但另一个问题没有给出明确的答案......

标签: python


【解决方案1】:

__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

【讨论】:

  • 是的,只要你在项目深处运行主程序,你应该使用python -m
猜你喜欢
  • 1970-01-01
  • 2014-02-28
  • 2019-10-16
  • 2019-05-25
  • 2014-01-02
  • 1970-01-01
  • 2015-12-08
  • 2014-11-14
  • 1970-01-01
相关资源
最近更新 更多