M1 Mac下使用Python Web3构建区块链交易遇Crypto架构兼容错误
解决M1 MacBook Pro上Web3.py与pycryptodome架构不兼容问题
核心原因
M1芯片采用arm64e架构,若你的Python环境是通过Rosetta转译的x86_64版本,安装pycryptodome时会编译生成x86_64架构的原生模块,导致和arm64e环境冲突,出现无法加载Crypto.Cipher模块的报错。
解决方案
1. 检查当前Python架构
先确认你的Python是x86_64还是arm64版本:
python3 -c "import platform; print(platform.machine())"
如果输出为x86_64,说明使用的是Rosetta转译的Python,需要切换到原生arm64版本。
2. 安装原生arm64架构的Python
- 从Python官方渠道下载适配arm64的Universal 2架构安装包,完成安装
- 或通过Homebrew安装:
brew install python
安装后再次运行架构检查命令,确认输出为arm64。
3. 重装pycryptodome
先卸载现有版本:
pip uninstall -y pycryptodome
然后用原生arm64的pip重新安装:
pip install pycryptodome --no-cache-dir --force-reinstall
4. 验证修复效果
运行以下代码测试Crypto模块是否正常加载:
from Crypto.Cipher import AES print("AES模块加载成功")
无报错后,再测试Web3.py的区块链交易功能。
5. 额外排查点
- 确保Ganache使用的是原生arm64版本,避免Rosetta转译引发的架构不匹配
- 若使用虚拟环境,需基于新的arm64 Python创建虚拟环境,再重新安装所有项目依赖
内容的提问来源于stack exchange,提问作者Leon KC
相关产品推荐
相关产品推荐

