我尝试从项目文件导入脚本,但总是收到错误
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
3条答案
按热度按时间dm7nw8vv1#
从开始处删除点。相对于
main.py
的相对路径会自动找到。3bygqnnd2#
你只能在你要导入的包中执行相对导入(例如,以点开始)。例如,想象一下这样的情况:
在
main.py
中,您可能有import mylib
或from mylib import *
,但在module1.py
中,您可能有from . import module2
,因为这里.
代表mylib
(这是一个python包,因为您在main.py
中导入了它)。所以,解决办法是简单地删除点,它在你的情况下没有用。
vwhgwdsa3#
简单来说:如果你使用相对导入,你可以在你的代码使用的最外层文件上面的两层上运行你想用'python-m your_module_path'运行的文件。
如下所示,如果要运行
run.py
,需要转到它上面的两层,然后运行python -m dir1.dir2.run
(不运行.py
)。