【发布时间】:2021-09-28 07:02:08
【问题描述】:
我有一个我正在销售的子模块,其中写得不好(它不使用相对导入,但有两个包。需要说明的是,我没有安装这些包(因为它们没有维护良好的包) pypi,只包括源代码。)
所以布局如下所示:
root
|
|-code
| |-file.py
|
|-vendor
|-submodule
|-package_1
| |-alpha.py
|-package_2
|-beta.py
不幸的是,beta.py 尝试使用 import package_1 不起作用,因为没有 __init__.py。因为我在 CI/CD 期间更新了所有子模块,所以缺少相关导入会破坏我的测试。
如果所有内容都在根目录中,这将起作用,但我无法控制子模块。我也不想更改 alpha.py 或 beta.py,因为我不想处理分叉。
有没有什么办法可以拥有一个通用的__init__.py 或类似的东西,这样当 beta.py 导入时,它会看到 package_1 和 alpha.py?
【问题讨论】:
标签: python python-3.x python-import