Windows11下Python3.12安装scipy等依赖遇subprocess-exited-with-error错误
问题原因
你遇到的错误根源有两点:
- 版本不兼容:Scipy 1.9.3、scikit-learn 1.2.0、transformers 4.25.1发布时Python 3.12尚未推出,官方没有适配该Python版本的预编译二进制包(wheel),pip只能尝试从源码编译安装。
- 缺少编译依赖:Scipy源码编译必须依赖Fortran编译器(如gfortran),你的系统中未安装任何可用的Fortran编译器,导致编译流程中断。
另外注意:gunicorn本身不支持Windows系统,无法直接在Windows环境下安装运行。
解决方案
方案一:升级依赖到兼容Python 3.12的版本(推荐)
直接安装适配Python 3.12的依赖版本,跳过源码编译步骤:
pip install scipy>=1.11.0 scikit-learn>=1.3.0 transformers>=4.35.0
- Scipy从1.11.0开始支持Python 3.12
- scikit-learn从1.3.0开始支持Python 3.12
- transformers从4.35.0开始支持Python 3.12
方案二:安装Fortran编译器编译旧版本(仅当必须使用指定旧版本时)
- 下载安装MinGW-w64,选择包含
gfortran的版本,安装时勾选"Add to PATH"选项,或者手动将MinGW的bin目录(如C:\mingw64\bin)添加到系统环境变量PATH中。 - 重启命令提示符/终端,执行
gfortran --version确认编译器可用。 - 重新执行安装命令:
pip install scipy==1.9.3 scikit-learn==1.2.0 transformers==4.25.1
方案三:用conda管理环境(自动处理编译依赖)
如果你有conda环境,可通过conda安装旧版本依赖,conda会自动解决编译依赖问题:
conda install scipy=1.9.3 scikit-learn=1.2.0 transformers=4.25.1
gunicorn的Windows替代方案
gunicorn不支持Windows,可选择以下方式:
- 使用Windows兼容的WSGI服务器,如
waitress:pip install waitress - 切换到WSL(Windows子系统Linux)环境,在Linux环境下安装使用gunicorn。
内容的提问来源于stack exchange,提问作者Vahab Bayat
相关产品推荐
相关产品推荐

