树莓派4(64位系统)pip3安装smbus2报Illegal instruction错误求助
树莓派4 64位系统安装smbus2报"Illegal instruction"错误的原因与解决
错误场景
执行命令:
pi@raspberrypi:~ $ pip3 install smbus2
终端报错:
Illegal instruction
原因分析
- 预编译wheel包不兼容:PyPI上的smbus2预编译二进制包(wheel)可能是针对非ARM64架构(如x86或旧版ARM子架构)编译的,树莓派4的ARMv8 64位CPU无法识别其中的指令,直接触发非法指令错误。
- pip版本过低:旧版pip的包索引查询逻辑可能无法优先匹配适配ARM64的wheel包,导致下载了不兼容的版本。
解决方法
- 强制从源码编译安装:跳过预编译wheel,让pip基于当前系统环境从源码编译smbus2,确保指令兼容。执行命令:
pip3 install smbus2 --no-binary :all: - 升级pip后重新安装:先把pip升级到最新版本,让它能正确识别并下载适配ARM64的包:
pip3 install --upgrade pip pip3 install smbus2 - 安装编译依赖(可选):如果源码编译时提示缺少依赖,先安装编译所需的工具包:
再执行源码编译安装命令。sudo apt update && sudo apt install python3-dev gcc -y
内容的提问来源于stack exchange,提问作者bookwormkkm
相关产品推荐
相关产品推荐

