在“ python3”中导入模块时,出现“顶级软件包”错误

时间:2020-02-08 09:51:31

标签: python

我的目录结构为

-Practice
 -Connect
    -connect.py -> having function abc
    -__init__.py
 -Pytest
    -__init__.py
    -file.py

file.1 contents

from ..connect.connect import abc
abc()

获取错误为

ValueError: attempted relative import beyond top-level package

我可以使用从父目录导入

from connect.connect import abc
abc()

这正在工作。需要知道为什么相对导入不起作用

正如人们所建议的那样,我在练习目录中添加了 init .py并仍然遇到相同的错误

2 个答案:

答案 0 :(得分:0)

您需要在顶层__init__.py文件夹中放置一个Practice,因此Python知道它本身就是一个包,而不是偶然包含两个包的随机文件夹。

答案 1 :(得分:0)

您的Practice目录中也需要__init__.py。否则,Pytest和Connect是单独的顶层程序包,而不是Practice程序包的同级子程序包。因此,您得到的错误。