ValueError: attempted relative import beyond top-level package
时间: 2023-02-05 14:49:25 浏览: 93
Python ValueError: invalid literal for int() with base 10 实用解决方法
这个错误通常是因为你试图在包之外使用相对导入。在 Python 中,如果你想要在包外部使用相对导入,那么你必须使用绝对导入。
例如,假设你有以下文件结构:
```
myproject/
package1/
__init__.py
module1.py
package2/
__init__.py
module2.py
```
如果你在 `module1.py` 中想要导入 `module2.py`,你可以使用绝对导入,如下所示:
```python
from myproject.package2 import module2
```
你也可以使用相对导入,但是这只能在包内部使用。例如,你可以在 `module1.py` 中使用相对导入,如下所示:
```python
from . import module2
```
但是,如果你尝试在包外部使用相对导入,那么就会出现“attempted relative import beyond top-level package”错误。
要解决这个错误,你需要使用绝对导入来代替相对导入。
阅读全文