我具有以下目录结构和文件:
├── 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
脚本?