You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置numpy使用MKL作为BLAS/LAPACK运算后端

解决numpy链接MKL后端的方法

你之前直接执行pip install mkl不生效的原因是:当前环境中的numpy是预编译版本,构建时已经绑定了OpenBLAS后端,不会自动识别后续安装的MKL库,必须重新安装/编译numpy使其在构建阶段链接MKL,具体操作如下:

方案1:使用conda安装(推荐,适配你的conda环境)

  • 先卸载现有numpy和MKL相关包,避免版本冲突:
pip uninstall -y numpy mkl
conda uninstall -y numpy mkl
  • 从defaults源安装MKL和配套numpy,defaults源提供的numpy默认编译时已链接MKL:
conda install -c defaults mkl numpy
  • 安装完成后验证配置:
import numpy as np
np.show_config()

此时输出中blas_mkl_info、lapack_mkl_info会显示可用信息,blas_opt_info、lapack_opt_info会指向MKL库。

方案2:使用pip源码编译安装

如果必须使用pip管理包,可通过源码编译numpy指定链接MKL:

  • 先安装MKL并配置环境变量,将路径替换为你当前虚拟环境对应的MKL安装路径:
pip install mkl
# 示例路径,可通过pip show mkl查看Location字段拼接得到
export MKL_ROOT=/your/env/path/lib/python3.7/site-packages/mkl
export LD_LIBRARY_PATH=$MKL_ROOT/lib:$LD_LIBRARY_PATH
export BLAS=$MKL_ROOT/lib/libmkl_rt.so
export LAPACK=$MKL_ROOT/lib/libmkl_rt.so
  • 禁止使用预编译wheel包,从源码编译安装numpy:
pip install --no-binary numpy numpy
  • 编译完成后执行np.show_config()验证即可。

注意:如果系统中存在其他路径的OpenBLAS库,需要保证MKL的库路径在LD_LIBRARY_PATH中优先级高于OpenBLAS的路径,避免numpy运行时优先加载OpenBLAS。

内容的提问来源于stack exchange,提问作者SkyWalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:45:04