【问题标题】:ValueError: Attempted relative import in non-package not for tests packageValueError:尝试在非包中进行相对导入,而不是用于测试包
【发布时间】:2016-09-08 16:28:45
【问题描述】:

我知道这已被多次询问,但不知何故我无法克服这个错误。这是我的目录结构-

project/
  pkg/
  __init__.py
  subpackage1/
        script1.py
        __init__.py
  subpackage2/
        script2.py
       __init__.py

script2.py 有:

class myclass:
    def myfunction:

script1.py 有

 from ..subpackage2 import script2   

我也试过

from ..subpackage2 import myclass

这给了我:ValueError: Attempted relative import in non-package

任何帮助将不胜感激。

【问题讨论】:

标签: python


【解决方案1】:

这个答案解释了发生了什么:https://stackoverflow.com/a/73149/769971

您可能正在 subpackage1/ 目录中运行 script1.py。 将您的导入更改为from subpackage2 import script2,备份到pkg/ 目录,然后运行python -m subpackage1.script1

【讨论】:

  • 这对我有用。我认为我的错误是尝试使用python ./subpackage1/script1.py 而不是python -m subpackage1.script1 运行python 脚本,这是完全错误的!!!
猜你喜欢
  • 1970-01-01
  • 2015-12-08
  • 2014-11-14
  • 2020-07-20
  • 1970-01-01
  • 2019-10-16
  • 2014-02-28
  • 2019-05-25
  • 2014-01-02
相关资源
最近更新 更多