gpt4 book ai didi

python - 如何运行具有绝对导入的子目录内的 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:37 25 4
gpt4 key购买 nike

我有以下目录结构和文件:

├── a
│   ├── b
│   │   ├── b.py
│   └── c
│   ├── c.py
└── main.py

# main.py
from a.b import b
print('i am main')

# a/b/b.py
from a.c import c
print('i am b')

# a/c/c.py
print('i am c')

以下工作正常并且符合预期。

» python3 main.py
i am c
i am b
i am main

但是,如果我进入目录 a/b 并运行

python3 b.py

我得到:

» python3 b.py
Traceback (most recent call last):
File "b.py", line 1, in <module>
from a.c import c
ModuleNotFoundError: No module named 'a'

如果我尝试从项目的根目录运行它,我会得到

» python3 a/b/b.py
Traceback (most recent call last):
File "a/b/b.py", line 1, in <module>
from a.c import c
ModuleNotFoundError: No module named 'a'

它无法找到目录上一级的模块,这是有道理的,但在这种情况下如何运行 a/b/b.py 脚本?

最佳答案

我仍然想要更好的解释为什么它有效。但我从this得到了提示。回答。您可以运行

python3 -m a.b.b 

运行a/b/目录中的b.py

关于python - 如何运行具有绝对导入的子目录内的 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55984481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com