如何在Python中处理钻石依赖?

问题描述 投票:0回答:1

我的项目有两个依赖项,每个依赖项都间接依赖于 protobuf 的不同主要版本。

大致情况描述得很好

我的项目中的具体问题体现在 Poetry 的此错误消息中。

kfp (1.8.21) depends on protobuf (>=3.13.0,<4)
and robotframework-browser (18.0.0) depends on protobuf (4.25.1)

这些包完全独立运行。他们不共享数据。如果每个人都能够使用自己的 protobuf 版本,事情就会顺利进行。这在Python中可能吗?

python dependency-management
1个回答
0
投票

不幸的是一点也不容易。单个 Python 环境不能拥有同名包的两个副本。

您的主要选择是

  1. 找到具有兼容
    kfp
    要求的
    robotframework-browser
    protobuf
    版本组合(虽然
    kfp~=1.8
    相当旧,您可以考虑升级!)
  2. 看看是否可以强制 Poetry 安装
    protobuf>=4
    ,然后看看
    kfp
    是否可以使用

除此之外,如果你无法升级

kfp
,你可以 fork 和 patch
kfp
来依赖和使用
protobuf>=4
...

© www.soinside.com 2019 - 2024. All rights reserved.