python-3.x 导入错误:尝试使用未知的父包进行相对导入:(

rt4zxlrg  于 2023-01-03  发布在  Python
关注(0)|答案(3)|浏览(251)

我尝试从项目文件导入脚本,但总是收到错误

from .Items.Quest1_items import *

给予

from .Items.Quest1_items import *
# ImportError: attempted relative import with no known parent package

# Process finished with exit code 1

这里是我的项目树,我正在运行来自www.example.com文件的脚本main.py

Quest1/
|
|- main.py
|
|- Items/
| |- __init__.py
| |- Quest1_items.py
dm7nw8vv

dm7nw8vv1#

从开始处删除点。相对于main.py的相对路径会自动找到。

from Items.Quest1_items import *
3bygqnnd

3bygqnnd2#

你只能在你要导入的包中执行相对导入(例如,以点开始)。例如,想象一下这样的情况:

project/
├ main.py
├ mylib/
├ __init__.py
│ ├ module1.py
│ └ module2.py

main.py中,您可能有import mylibfrom mylib import *,但在module1.py中,您可能有from . import module2,因为这里.代表mylib(这是一个python包,因为您在main.py中导入了它)。
所以,解决办法是简单地删除点,它在你的情况下没有用。

vwhgwdsa

vwhgwdsa3#

简单来说:如果你使用相对导入,你可以在你的代码使用的最外层文件上面的两层上运行你想用'python-m your_module_path'运行的文件。
如下所示,如果要运行run.py,需要转到它上面的两层,然后运行python -m dir1.dir2.run(不运行.py)。

.../dir1/dir2/
    -test
        -test1.py
            from .test2 import *
        -test2.py
    -run.py
        from .test.test1 import *

相关问题