我有这样的目录结构

dir1/subdir1/module1.py
dir1/subdir2/subdir22/module2.py


假设我将__init__.py添加到每个目录和子目录中。我想从模块2导入module1,然后参考相关问题并尝试其他方式,但找不到解决方案。例如

在module2中,我尝试导入模块1

from .... import subdir1.module1
from ....subdir1 import module1


以上两种导入均会引发语法错误。

最佳答案

这对我有用:

$ mkdir -p dir1/subdir1
$ mkdir -p dir1/subdir2/subdir22
$ touch dir1/{,subdir1,subdir2,subdir2/subdir22}/__init__.py
$ echo 'x = 42' > dir1/subdir1/module1.py
$ echo 'from ...subdir1.module1 import x; print x' > dir1/subdir2/subdir22/module2.py
$ python -m dir1.subdir2.subdir22.module2
42


魔咒是

from ...subdir1.module1 import x


虽然

from ...subdir1 import module1


也可以。

关于python - 从父目录的子目录导入python模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30202267/

10-12 19:32