Python3.9安装旧版scikit-learn及依赖报exit status 1错误如何解决
问题根因
- 版本不兼容:你指定的
llvmlite==0.26.0、scikit-learn==0.20.1均发布于2018年,早于Python3.9的发布时间,官方完全不支持Python3.9环境,强行编译安装必然失败。你看到的scikit-learn安装失败是表象,真实的报错是前置依赖llvmlite安装失败导致整个依赖安装流程中断。 - LLVM版本不匹配:llvmlite 0.26.0要求严格绑定LLVM 7.x版本,你通过apt默认安装的llvm是更高的大版本,不符合编译要求;且默认安装的llvm不会自动将
llvm-config加入全局PATH,也会触发你日志里的文件找不到报错。
解决方法
方案1(推荐,无需调整项目依赖):降级Python版本到3.7
这是最稳妥的方案,完全适配你给出的所有依赖版本:
- 第一步安装所需系统依赖:
apt update apt install -y python3.7 python3.7-dev llvm-7 llvm-7-dev
- 第二步创建对应版本的Python虚拟环境,指定LLVM路径后安装依赖:
# 创建虚拟环境 python3.7 -m venv my_project_venv # 激活虚拟环境 source my_project_venv/bin/activate # 指定匹配的llvm-config路径 export LLVM_CONFIG=/usr/bin/llvm-config-7 # 安装所有依赖 pip install -r requirements.txt
方案2(必须使用Python3.9时选择):升级对应依赖版本
调整你的requirements.txt里的三个包版本到支持Python3.9的最小版本即可,其余依赖可保留原版本:
llvmlite==0.37.0numba==0.54.0scikit-learn==0.24.2
调整后直接执行pip install -r requirements.txt即可正常安装。
内容的提问来源于stack exchange,提问作者pceccon
相关产品推荐
相关产品推荐

