在python3.8-alpine镜像安装Scipy1.9.3失败,Sklearn依赖冲突求助
解决方案
1. 先解决distutils导入错误
在安装Scipy/Sklearn前,先降级setuptools到兼容版本,避免distutils.log的导入问题:
pip install setuptools<60.0.0
2. 强制指定Scipy和Sklearn的兼容版本
方式一:使用requirements.txt
创建requirements.txt文件,明确指定适配Python3.8和alpine环境的版本组合:
numpy>=1.19.2,<1.24.0 scipy==1.8.1 scikit-learn==1.0.2
执行安装:
pip install -r requirements.txt
方式二:直接通过pip命令指定版本
安装时同时指定Sklearn和Scipy的版本,pip会优先遵循指定的版本约束:
pip install scikit-learn==1.0.2 scipy==1.8.1
关键说明
- 所选版本需确保相互兼容:
scikit-learn 1.0.2支持scipy 1.7.0+且适配Python3.8;scipy 1.8.1在alpine+Python3.8环境下可正常编译安装,不会触发旧版本numpy的安装错误。 - 不要单独安装Sklearn,否则pip会自动拉取其依赖的最新版Scipy,导致之前的错误重现。
内容的提问来源于stack exchange,提问作者Madhusudan L
相关产品推荐
相关产品推荐

