Windows系统下PyPy安装SciPy报错:找不到lapack/blas资源的解决方法
解决PyPy 2.7 32位Windows下安装SciPy的BLAS/LAPACK依赖问题
我之前在PyPy 2.7的Windows 32位环境里踩过完全一样的坑,折腾了好一阵才搞定,给你几个靠谱的解决方案:
1. 手动指定BLAS/LAPACK库路径编译SciPy
Windows上PyPy默认找不到BLAS和LAPACK的系统库,得先准备好适配32位的静态库:
- 先获取Windows 32位的BLAS和LAPACK静态库(可以找预编译版本,或者用MinGW自己编译Netlib的BLAS/LAPACK源码)
- 设置环境变量指向这些库,然后强制源码编译SciPy:
这里set BLAS=C:\your-path\blas.lib set LAPACK=C:\your-path\lapack.lib pypy -m pip install scipy --no-binary :all:--no-binary :all:是关键,它会跳过适配CPython的wheel包,强制用源码编译适配PyPy的版本。
2. 先编译带BLAS依赖的NumPy,再装SciPy
你之前用python setup.py install装的NumPy可能没有链接BLAS库,这会导致SciPy编译时找不到依赖。可以重新编译NumPy:
- 先卸载现有NumPy:
pypy -m pip uninstall numpy -y - 同样设置BLAS和LAPACK的环境变量,然后重新编译安装NumPy:
set BLAS=C:\your-path\blas.lib set LAPACK=C:\your-path\lapack.lib pypy setup.py install - 完成后再执行
pypy -m pip install scipy --no-binary :all:,这时候SciPy就能复用NumPy的BLAS依赖了。
3. 准备好编译环境
别忘了Windows上源码编译需要32位的编译器,推荐安装MinGW-w64的32位版本,然后把MinGW的bin目录(比如C:\MinGW\bin)添加到系统PATH里,否则编译过程中会报错找不到gcc等工具。
另外,如果你能找到社区里针对PyPy 2.7 32位Windows预编译好的SciPy源码包(已经配置好BLAS依赖的),直接下载后用pypy setup.py install安装会更省事。
内容的提问来源于stack exchange,提问作者TanMath
相关产品推荐
相关产品推荐

