Python中的相对导入:除非向上移动父目录,否则无法使用-m标志。
Python中的相对导入:除非向上移动父目录,否则无法使用-m标志。
我在这个确切的问题中复制了场景:
Python错误-ImportError:尝试相对导入,但没有已知的父包
然而,对我来说,答案不起作用。我正在VSCode中运行python3(3.7.9),使用以下文件结构:
project/ ├─ utils/ │ ├─ module.py ├─ server/ │ ├─ main.py
当在目录 all_projects/project/server/
中时:
运行 python3 main.py
,我会得到 ImportError: attempted relative import with no known parent package
运行 python3 -m main
: ImportError: attempted relative import with no known parent package
-
当在目录 all_projects/project/
中时:
运行 python3 -m server.main
: ValueError: attempted relative import beyond top-level package
-
只有当在目录 all_projects/
中时:
运行 python3 -m project.server.main
:按预期工作。
这里到底发生了什么?为什么 python3 -m server.main
在 project
目录中不起作用?
admin 更改状态以发布 2023年5月24日