我试图了解相对进口,但是我不清楚一种情况: 我有这样的目录结构:
tests/
subdir1/
run.py
subdir2/
start.py
run.py认为:
print('in run')
start.py包含:
from ..subdir1 import run
print('succesed')
但是当我启动start.py(python3 ./subfold2/start.py)时 我收到此错误:
Traceback (most recent call last):
File "./subfold2/start.py", line 1, in <module>
from ..subfold1 import run
ValueError: attempted relative import beyond top-level package
python版本是3.7.3 我尝试添加 init ,但我读到,python 3.3+不需要它来了解,该文件夹是包。
答案 0 :(得分:1)
在test.py
目录下有一个文件test
作为运行程序。从那里运行,一切都会正常。
每个文件夹下应有__init__.py
。
OR
运行
python -m package.subpackage.subsubpackage.pyscript