Python中的相对导入:除非向上移动父目录,否则无法使用-m标志。

13 浏览
0 Comments

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 mainImportError: attempted relative import with no known parent package

-

当在目录 all_projects/project/ 中时:

运行 python3 -m server.mainValueError: attempted relative import beyond top-level package

-

只有当在目录 all_projects/ 中时:

运行 python3 -m project.server.main:按预期工作。

这里到底发生了什么?为什么 python3 -m server.mainproject 目录中不起作用?

admin 更改状态以发布 2023年5月24日
0
0 Comments

它可以是任何东西!包括权限!但你应该使用virtualenv

0