当前位置: 首页 > 面试题库 >

ValueError:尝试在非程序包中相对导入,而不用于测试程序包

程谦
2023-03-14
问题内容

我知道这个问题已经被问过很多次了,但是我却无法克服这个错误。这是我的目录结构-

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:尝试在非包中进行相对导入

任何帮助将非常感激。


问题答案:

这个答案解释了发生了什么:http://codingdict.com/questions/250

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



 类似资料:
  • 我在configs/common中使用配置simulation.py。我知道错误了 完整错误: py:

  • 问题内容: 这是我的文件夹结构: 在我有: 在时: 现在,当我发出: 我得到: 由于“多份原件打印”是在sys.path中,并正确地解决它为什么抱怨相对进口上述顶层包? 这是顶层包 ? 顺便说一句,这是我向旧项目中添加测试的尝试-在Python测试包布局中曾提出过要求,但作为Python单元测试去哪儿的副本被关闭了。对我当前的测试包布局的评论深表感谢! 那么下面的答案不适用于我的情况: 该 模块

  • 问题内容: 我的项目存在以下问题,请帮帮我!这是我的包裹的结构: 这是foo1.py的实现: 当我运行foo1时,出现错误: ValueError:尝试了相对于顶级包的相对导入 。 我可以通过以下调整来解决它: 但是我想知道是否有一种方法可以不导入sys并在其中附加父目录。 我听说,例如,如果我有.py文件’/pkg/start.py’,它调用了我的foo1模块,那么两个点就可以了。但是,有什么方

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

  • 为了更好地理解Python的导入系统是如何工作的,我在玩Python的导入系统时遇到了另一个问题。我有以下结构 在中有以下代码: 在中有以下内容: 但为什么?我该怎么解决呢?我正在从空闲中运行,应该被认为是一个包,因为它有文件。 第一个导入很好,但以下内容不起作用: 因为我试图从父包导入一些东西,但显然我不能,因为一些奇怪的原因。

  • 我不明白在springboot应用程序中如何正确地编写websocket测试用例。我有一个实现的类,我在中添加了这个处理程序: 但是当我写下下面的测试用例时,我得到了一个例外: 异常::发起WebSocket连接的HTTP请求失败 如果我将(结尾斜杠)它可以工作,但不工作。 我做错了什么?