赞
踩
____tz_zs
已存在包的版本:
protobuf 3.20.3
web3 5.25.0
要安装包:
grpcio 1.51.1
grpcio-tools 1.51.1
在安装grpc时, pip install grpcio-tools
时报错:
web3 5.25.0 requires protobuf<4,>=3.10.0, but you have protobuf 4.21.12 which is incompatible.
这是因为我现在的 web3py 的包(web3py 版本 5.25.0 ),依赖旧版本的 protobuf 包(protobuf<4,>=3.10.0)
web3 5.25.0 requires protobuf<4,>=3.10.0 ... ...
并且现行发布的 web3py 最新的稳定版本为 v5.31.3,他仍然固定依赖了旧版本 protobuf 包( protobuf v3.19.5 版本)。
web3 5.31.3 requires protobuf==3.19.5, but you have protobuf 4.21.12 which is incompatible.
而 grpcio-tools 现行版本为 v1.51.1,依赖的 protobuf 版本是新版的,如下:
grpcio-tools 1.51.1 requires protobuf<5.0dev,>=4.21.6
总结:
现行最新的 web3py 稳定版本为 v5.31.3,他固定了依赖为低版本的 protobuf 版本。
grpcio-tools 等很多包依赖的是较新版本的 protobuf 包(现在 protobuf 的最新版本已经是 4.21.12 了),这里的版本不兼容导致了问题的出现。
指定安装最新不稳定版 web3py v6.0.0-b.7 ,此v6版本升级更新了依赖的包。(20230317 补充稳定版v6.0.0已发布)
grpcio 1.51.1
grpcio-tools 1.51.1
protobuf 4.21.12
grpcio 1.35.0
grpcio-tools 1.35.0
protobuf 3.20.1
web3 5.25.0
grpcio 支持的 Protobuf 版本取决于 grpcio 版本。通常情况下,grpcio 会支持一些较新的 Protobuf 版本,但也不支持所有的版本。
以下是 grpcio 支持的 Protobuf 版本列表:
grpcio 1.40.0 支持 Protobuf 3.17.3
grpcio 1.39.0 支持 Protobuf 3.15.8
grpcio 1.38.1 支持 Protobuf 3.15.8
grpcio 1.37.1 支持 Protobuf 3.14.0
grpcio 1.36.4 支持 Protobuf 3.14.0
grpcio 1.35.0 支持 Protobuf 3.13.0
如果您要使用 grpcio,请确保您安装了与您的 grpcio 版本兼容的 Protobuf 版本。
最新稳定版web3 6.0.0
的依赖更新了
protobuf>=4.21.6
https://github.com/ethereum/web3.py/issues/2654#issuecomment-1284440558
https://github.com/ethereum/web3.py/issues/2654
https://github.com/protocolbuffers/protobuf/issues/10571
https://github.com/ethereum/web3.py/pull/2666
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。