GCP/EC2部署ML项目时找不到mkl-service==2.3.0匹配版本解决方案问询
mkl-service 云环境部署报错解决方案
报错根因
你遇到的ERROR: No matching distribution found for mkl-service==2.3.0报错,以及高版本mkl相关依赖运行报错的问题,核心来自环境差异:
- 本地通常使用Anaconda/miniconda管理Python环境,conda源的mkl相关包已经预编译适配了本地系统架构、glibc版本,且自带mkl运行时依赖,所以运行无异常
- EC2、GCP云服务器默认使用PyPI源安装依赖,mkl-service的PyPI源仅保留了有限架构和系统版本的预编译wheel包,若你使用的是arm架构实例、或云服务器系统glibc版本过低,就会出现找不到对应发行版的问题,高版本安装后也会因为缺少运行时报错
可行解决方案
- 方案1:改用conda管理依赖
云服务器上安装miniconda后,通过conda源安装指定版本的mkl相关包即可,conda源对多架构、多系统版本的预编译包覆盖远高于PyPI,安装命令如下:conda install mkl-service==2.3.0 mkl-fft==1.0.6 mkl-random==1.0.1.1 - 方案2:替换mkl依赖为openblas实现
若不想引入conda,可以直接移除requirements.txt中所有mkl开头的依赖,改用基于openblas的numpy、scipy版本,绝大多数ML项目的数值计算兼容性不受影响,安装命令如下:pip install numpy scipy openblas - 方案3:指定Intel专属pip源安装
如果必须使用pip安装指定版本的mkl-service,可以临时指定Intel官方的mkl专属pip源安装,该源保留了所有历史版本mkl相关包的预编译版本,安装命令如下:pip install mkl-service==2.3.0 -i https://pypi.anaconda.org/intel/simple
内容的提问来源于stack exchange,提问作者lathiya Dhruvraj
相关产品推荐
相关产品推荐

