树莓派3通过pip安装web3时出现subprocess.CalledProcessError错误
问题根因
报错核心是pip依赖的系统版本查询命令lsb_release -a执行失败,不属于Python安装环节的故障。
解决步骤
- 优先修复系统依赖缺失问题,执行以下命令安装lsb-release组件:
sudo apt update sudo apt install -y lsb-release
安装完成后先执行lsb_release -a验证,输出系统版本信息无报错后,重试安装web3即可。
- 若安装lsb-release后仍报错,可通过添加临时环境变量跳过系统版本检测:
sudo PIP_DISABLE_PIP_VERSION_CHECK=1 python3 -m pip install web3
该写法同时也规避了你日志中提示的pip旧脚本包装器的警告问题。
- 若上述方案均无效,可直接修改pip内置的distro模块跳过命令调用:找到路径
/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py,定位到_lsb_release_info方法中调用subprocess.check_output的代码段,直接返回和你当前Raspbian版本匹配的字典即可,例如return {'release': '11 (bullseye)'},修改后再执行安装命令就不会触发命令调用异常。
前置依赖提示
web3安装需要编译大量C扩展,建议提前安装编译所需的系统依赖,避免后续出现编译报错:
sudo apt install -y python3-dev libssl-dev libffi-dev build-essential
内容的提问来源于stack exchange,提问作者Flaxamax
相关产品推荐
相关产品推荐

