Python3.11安装bipwallet遇ImportError:无法导入build_py_2to3
解决pip安装bipwallet时的
ImportError: cannot import name 'build_py_2to3'问题 问题根源
- Python 3.11 已移除
distutils.command.build_py中的build_py_2to3类——这个类原本用于Python 2到3的代码转换,如今已完全废弃。 - bipwallet依赖的
protobuf==3.0.0a3是2016年的老旧预发布版本,其setup.py仍在尝试导入该已移除的类,直接导致安装失败。 - 补充:
distutils属于Python标准库组件,无法通过pip install --upgrade distutils升级,所以你之前的操作无效。
可行解决方案
方案1:替换兼容的protobuf版本
手动安装支持Python 3.11的protobuf新版本,强制覆盖bipwallet的老旧依赖:
pip install bipwallet protobuf>=4.21.0 --force-reinstall
如果出现依赖冲突,可分步操作:
# 先装兼容的protobuf pip install protobuf>=4.21.0 # 跳过依赖自动安装,手动安装bipwallet pip install bipwallet --no-deps
注意:使用--no-deps后,需要自行确认并安装bipwallet的其他必要依赖。
方案2:降级Python版本到3.10及以下
如果bipwallet必须依赖老旧的protobuf版本,可通过虚拟环境隔离Python版本:
- 安装Python 3.10(根据系统选择对应方式:Ubuntu用
sudo apt install python3.10,macOS用brew install python@3.10,Windows直接从官网下载) - 创建并激活虚拟环境:
python3.10 -m venv bipwallet-env # Linux/macOS激活命令 source bipwallet-env/bin/activate # Windows激活命令 bipwallet-env\Scripts\activate
- 在虚拟环境内安装bipwallet:
pip install bipwallet
额外提示
protobuf==3.0.0a3存在大量未修复的bug和安全漏洞,强烈建议使用最新稳定版。- 若bipwallet项目已停止维护,可考虑替代包,比如
bitcoinlib或pycoin。
内容的提问来源于stack exchange,提问作者Orkhan
相关产品推荐
相关产品推荐

