如何使python模块的目录看起来像一个包

2024-04-19 01:01:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一些遗留软件,其结构如下:

.../legacy_pkg1/python/module1.py
.../legacy_pkg1/python/module2.py
.../legacy_pkg1/python/module3.py

.../legacy_pkg2/python/module4.py
.../legacy_pkg2/python/module5.py
.../legacy_pkg2/python/module6.py

维护人员运行此代码的方法包括设置PYTHONPATH=.../legacy_pkg1/python:.../legacy_pkg2/pythonimport module1,实例。因此,命名冲突有很多机会,我想解决这个问题

可能的选项包括设置软链接,如下所示:

.../legacy/python/legacy_pkg1 => ../legacy_pkg1/python
.../legacy/python/legacy_pkg2 => ../legacy_pkg2/python
export PYTHONPATH=.../legacy/python

问题在于module1.py内部存在以下类型的导入:

import module2

因此,如果不重写所有遗留代码导入,我就看不到一种方法来实现这一点


Tags: 方法代码pyimport软件legacy结构module1