树莓派4导入scikit-learn时出现ImportError报错求助
解决scikit-learn导入时的
__atomic_compare_exchange_8未定义符号错误 问题根源
该错误发生在ARM架构系统中,原因是scipy的预编译版本依赖libatomic原子操作库,但运行环境未正确加载该库。
可行解决方案
方案1:临时加载libatomic运行Python
启动Python前通过环境变量指定加载libatomic:
LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1 python3
进入Python环境后执行import sklearn即可正常运行。
方案2:永久配置环境变量
编辑用户配置文件(如~/.bashrc或~/.profile),添加以下内容:
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
保存后执行source ~/.bashrc使配置生效,后续启动Python会自动加载该库。
方案3:源码编译安装scipy(备选)
若上述方案无效,可尝试从源码编译scipy,确保编译时正确链接libatomic:
- 卸载现有scipy:
pip uninstall -y scipy
- 安装编译依赖:
sudo apt-get install build-essential gfortran libatomic-dev
- 源码安装scipy:
pip install scipy --no-binary :all:
完成后重新尝试导入scikit-learn。
内容的提问来源于stack exchange,提问作者Damar Buana Murti
相关产品推荐
相关产品推荐

