使用pipx安装eth-brownie时cytoolz编译失败报错如何解决?
报错原因
该编译错误是eth-brownie默认依赖的旧版cytoolz与Python 3.10及以上版本不兼容导致的:_PyGen_Send是Python 3.9及更早版本的内部API,Python 3.10版本后已将其移除,旧版cytoolz调用该API会在编译阶段触发C99标准的报错。
可行解决方案
- 方案1:预安装兼容高版本Python的cytoolz再安装brownie
- 执行命令安装适配高版本Python的cytoolz:
pipx install cytoolz==0.12.0 - 再执行brownie安装命令:
pipx install eth-brownie
- 执行命令安装适配高版本Python的cytoolz:
- 方案2:跳过cytoolz依赖校验后手动注入适配版本
如果方案1仍提示依赖冲突,可按以下步骤操作:- 先卸载之前安装失败的残留文件:
pipx uninstall eth-brownie - 安装brownie时跳过cytoolz依赖校验:
pipx install eth-brownie --pip-args="--ignore-installed cytoolz" - 给brownie的独立虚拟环境注入适配版本的cytoolz:
pipx inject eth-brownie cytoolz==0.12.0
- 先卸载之前安装失败的残留文件:
- 方案3:降级Python版本到3.9
eth-brownie官方对Python 3.9版本的兼容性最佳,降级到Python 3.9后直接执行pipx install eth-brownie即可完成安装,无需额外调整依赖。 - 附加说明(MacOS用户):
若执行时依然提示clang相关错误,可先安装Xcode命令行工具:xcode-select --install,安装完成后再重新执行上述步骤。
内容的提问来源于stack exchange,提问作者tythereum
相关产品推荐
相关产品推荐

