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

使用Meson安装带MKL的Scipy失败求助

解决通过pip从源码构建使用MKL BLAS的Scipy 1.9.1问题

问题背景

你尝试用pip源码安装带MKL BLAS实现的Scipy 1.9.1,安装NumPy时执行pip install numpy --no-binary numpy可成功,但运行pip install scipy --no-binary scipy时失败,报错信息如下:

Run-time dependency openblas found: NO (tried pkgconfig and cmake)
../../scipy/meson.build:130:0: ERROR: Dependency "OpenBLAS" not found, tried pkgconfig and cmake

旧版Scipy可通过环境变量或site.cfg指定BLAS库,但新版采用Meson构建系统后不再支持这些方式,需用Meson兼容的配置方法指定MKL。

解决方案

Scipy 1.9.x基于Meson构建时,可通过以下两种方式指定MKL作为BLAS后端:

方法1:通过环境变量传递Meson参数

执行pip安装命令前,设置MESON_ARGS环境变量,明确告知Meson使用MKL:

# Linux/macOS
export MESON_ARGS="-Dblas=mkl -Dlapack=mkl"
pip install scipy==1.9.1 --no-binary scipy

# Windows(PowerShell)
$env:MESON_ARGS = "-Dblas=mkl -Dlapack=mkl"
pip install scipy==1.9.1 --no-binary scipy

方法2:直接通过pip的--config-settings传递参数

从pip 21.3版本开始支持--config-settings参数,可直接将Meson配置项传递给构建过程:

pip install scipy==1.9.1 --no-binary scipy --config-settings="setup-args=-Dblas=mkl -Dlapack=mkl"

额外注意事项

  • 确保系统已正确安装MKL开发库,且MKL的环境变量(如MKLROOT)已配置完成,Meson需要能定位到MKL的头文件和库文件。
  • 如果MKL未通过标准路径安装,可在MESON_ARGS中添加MKL路径配置:
    export MESON_ARGS="-Dblas=mkl -Dlapack=mkl -Dblas.mkl_root=/path/to/mkl -Dlapack.mkl_root=/path/to/mkl"
    
  • 验证安装结果:安装完成后,可在Python中执行以下代码确认BLAS后端:
    import scipy
    print(scipy.show_config())
    
    输出中应包含blas_mkl_info相关条目,表明已成功使用MKL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:05:22