我有一个 Python 文件的文件夹结构,如下所示:
folder w space
├── folder1
│ └── subfolder1
│ └── file_1.py *is main*
└── folder2
└── folder w space2
└── file_2.py
└── __init__.py
我需要将(具有主文件的文件)作为包file_1.py
导入。file_2.py
请注意file_2.py
,相对于file_1.py
,是向上 3 个目录,然后向下是 3 个目录。理论上,我会这样写相对导入:
from ...folder2 import folder w space2.file2
但是,由于子文件夹中的间距,这是无效的。绝对导入更糟糕,因为基本文件夹也包含空格:
import folder w space.folder2.folder w space2.file2
有了这个,我如何file_2.py
在没有以下情况下作为模块导入:
- 重命名文件夹(我不拥有它们,所以即使我想也不能)
- 不使用
sys.path.append()
(在我们的生产环境中不起作用) - 搬家
file_2.py
(因为组织必须留在原地) - 希望不要安装任何其他库(不是绝对必要的,但我将新库添加到我们的生产环境中将是一个完整的过程)
任何帮助将不胜感激!