树莓派4虚拟环境pip3安装streamlit时pyarrow构建失败报错
故障原因
从报错日志的linux-armv7l-cpython-39字段可以确认,你当前使用的是32位ARM架构的树莓派系统,PyPI官方没有为该架构提供pyarrow的预编译安装包,pip执行安装时会拉取源码本地编译,编译阶段缺少依赖、内存不足、版本适配问题都会触发cmake执行失败,而streamlit强依赖pyarrow,最终导致整体安装流程中断。
解决方案
方案1:复用系统源预编译包(推荐,成功率最高)
- 退出当前虚拟环境,执行命令安装系统源适配32位ARM架构的pyarrow:
sudo apt update && sudo apt install python3-pyarrow -y
- 重新创建支持读取系统站点包的虚拟环境(如果已有虚拟环境,直接删除后重建即可),命令中替换为你自己的虚拟环境存放路径:
python3 -m venv --system-site-packages <你的虚拟环境路径>
- 激活新的虚拟环境,直接执行streamlit安装命令,此时pip会检测到系统层已安装符合要求的pyarrow,不会再触发源码编译:
pip3 install streamlit
方案2:虚拟环境内独立编译安装
如果不想让虚拟环境读取系统站点包,可以按以下步骤补全依赖后编译安装:
- 先安装pyarrow编译所需的全部系统依赖:
sudo apt update && sudo apt install build-essential cmake python3-dev libarrow-dev libboost-all-dev -y
- 临时调大交换分区大小,避免编译过程中因内存不足被系统终止:
sudo dphys-swapfile swapoff sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=2048/g' /etc/dphys-swapfile sudo dphys-swapfile setup sudo dphys-swapfile swapon
- 激活虚拟环境,先安装对32位ARM兼容性较好的pyarrow旧版本(最新版本已基本放弃32位ARM支持,编译失败率极高):
pip3 install pyarrow==12.0.1
- pyarrow安装完成后,再执行streamlit安装:
pip3 install streamlit
补充说明:如果你使用的是64位树莓派系统(架构标识为aarch64),出现该报错基本是pip版本过低无法识别官方预编译包导致,先执行
pip3 install --upgrade pip更新pip版本后,重新执行streamlit安装即可解决。
内容的提问来源于stack exchange,提问作者Marghe_l
相关产品推荐
相关产品推荐

