我的目录结构为
-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并仍然遇到相同的错误
答案 0 :(得分:0)
您需要在顶层__init__.py
文件夹中放置一个Practice
,因此Python知道它本身就是一个包,而不是偶然包含两个包的随机文件夹。
答案 1 :(得分:0)
您的Practice目录中也需要__init__.py。否则,Pytest和Connect是单独的顶层程序包,而不是Practice程序包的同级子程序包。因此,您得到的错误。