繁体   English   中英

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

[英]Getting `Top `level package` error when importing module in `python3`

我的目录结构为

-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()

这是有效的。 需要知道为什么相对导入不起作用

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

您需要一个__init__.py位于顶级Practice文件夹中,因此 Python 知道它本身应该是一个包,而不是一个恰好包含两个包的随机文件夹。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM