有没有办法解决由Pyxb引起的导入版本冲突问题

2024-05-15 09:50:11 发布

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

我有3个python项目。A、B、C项目C项目依赖项目A、B

Project C --- depends ---> Project A
Project C --- depends ---> Project B

项目A和项目B都依赖于PyXB,它们使用一些生成的模式模块。不幸的是,项目A使用PyXB 1.2.2,项目B使用PyXB 1.2.3

^{pr2}$

如果您阅读这些模块,您将看到

^{pr3}$

以及

^{pr4}$

所以,目前,项目C有一个版本冲突问题

Project C --- depends ---> PyXB 1.2.2
                                ^
                                |
                                X conflict
                                |
                                v
Project C --- depends ---> PyXB 1.2.3

而且由于这些模式模块是手动修改的。很难重新生成它们并应用相同的修改。所以我想知道是否可以在Python中导入同一个版本的模块。例如,我设想这可能是

with import_routing('pyxb', '..packages.pyxb1_2_3'):
    import project_a

有这样的工具吗?或者在这种情况下我还可以使用其他的方法吗?


Tags: 模块项目import版本projectwith模式手动
1条回答
网友
1楼 · 发布于 2024-05-15 09:50:11

不容易。绑定确实对特定版本的PyXB提供的底层API进行了假设。只要没有文档引用来自两个名称空间的绑定,修改模块元数据以允许两个版本共存,这可能有一些神奇之处。在

不幸的是,生成的绑定是手动修改的。在许多情况下,使用PyXB的customization infrastructure可以消除这种紧耦合,在这种情况下,您可以重新生成绑定并重用覆盖它们的定制。在

相关问题 更多 >