Python安装scipy,scikit-image时提示"no lapack/blas resources found"的解决方法

该文由Markdown语法编辑器编辑完成。

问题背景:

近期在做有关图像分割的技术调研,在Github上找到一个关于做肝脏自动分割的代码,代码的地址为:
https://github.com/mazoku/liver_segmentation
文中通过采用GrowCut和Active Contour Model的算法实现了肝脏的完全自动分割。
在作者给出的代码中,需要加载的第三方库有:
matplotlib,
numpy,
scipy,
PyQt4,
scikit-image,
scikit-learn,
pydicom,
pyopencv.

在将作者的工程导入到PyCharm中时,工具提示有模块未安装。于是采用了Python自带的包管理器Pip进行这几个包的安装。依次应用指令:
pip install matplotlib, numpy, PyQt4后都成功安装了。但是在安装scipy和scikit-image时却提示出错:
“numpy.distutils.system_info.NotFoundError: no lapack/blas resources found.”

错误提示如下图:
这里写图片描述

在网上找到了以前遇到过类似问题的前辈,以下是他们提供的解决方案的相关链接:
http://stackoverflow.com/questions/28190534/windows-scipy-install-no-lapack-blas-resources-found
http://stackoverflow.com/questions/30753431/numpy-distutils-system-info-notfounderror-no-lapack-blas-resources-found
http://www.scipy.org/scipylib/building/windows.html

虽然回答还算详细,但是看到一大堆的英文就有点失去信心了。大致意思是说在Windows操作系统上,不像Mac或Linux下那样方便解决,需要自己去编译源码,编出lapack和blas的链接库,然后才能解决这个问题。
后来,我又看了几个中文版的解决方案。

解决方案:

最后,解决我遇到的这个问题的解决方案是来自以下链接的答案:
http://www.voidcn.com/blog/z6491679/article/p-5740396.html
另外还有一个类似的回答的链接:
http://www.cnblogs.com/eastmount/p/5052871.html#3376247

最终,我并没有去编译源代码,而是将先前安装的numpy先通过:pip uninstall numpy。然后直接去Python提供的第三方包的列表库中查找到所需要的几个包:
在该地址下:http://www.lfd.uci.edu/~gohlke/pythonlibs/
下图是该网站提供的Python第三方库的列表。
这里写图片描述

根据我本机安装的Python是2.7版,系统是x64的,选择下载了对应的whl文件:
(1)numpy-1.11.2+mkl-cp27-cp27m-win_amd64.whl
(2)scipy-0.18.1-cp27-cp27m-win_amd64.whl
(3)scikit_image-0.12.3-cp27-cp27m-win_amd64.whl

然后,还是利用Python的包管理器pip,通过指定全路径的方式,依次安装这几个包。如:
pip install filepath/numpy-1.11.2+mkl-cp27-cp27m-win_amd64.whl
filepath为这个文件的存放地址,假如为C:\downloads,
pip需要指定exe的路径:如C:\Python27\Scripts\pip.exe.
所以我本机的最后指令为:
C:\Python27\Scripts\pip.exe install C:\downloads\numpy-1.11.2+mkl-cp27-cp27m-win_amd64.whl

注意:这里安装的顺序应该是先安装numpy+mkl,因为后面的scipy和scikit-image,scikit-learn等都是依赖于numpy+mkl这个库的。

以下是我本地的cmd的命令行参数:
这里写图片描述

<think>好的,用户遇到了安装scikit显示“This is an issue with the package mentioned above”的错误。首先,我需要确定这个错误的常见原因。scikit通常指的是scikit-learn,安装的问题可能涉及依赖项、构建工具、Python环境或者包管理器的问题。 用户之前询问过关于liblapack的问题,可能他们正在尝试安装需要科学计算库的包,比如scikit-learn,这依赖于numpyscipy,而后者又需要BLAS/LAPACK等库。Termux环境不同于标准Linux,可能缺少某些库或路径配置不同。 首先,我需要确认用户是否按照之前的指导正确安装了openblas,并设置了环境变量。如果用户跳过了某些步骤,或者环境变量没有正确设置,可能导致编译找不到必要的库,从而出现包相关的问题。 其次,用户可能在安装scikit-learn使用了不兼容的安装方式。例如,使用pip安装可能尝试从源代码构建,而Termux的环境可能缺少必要的编译工具或头文件。这候可能需要安装clang、make等构建工具,或者安装Python的开发库。 另外,用户可能没有更新pkg和pip到最新版本,导致依赖关系解析错误。需要建议用户先更新系统包和pip,再尝试安装。 还有一种可能是网络问题,导致下载包失败,但错误信息提到是包本身的问题,这可能更指向依赖或构建问题。建议用户使用--no-cache-dir参数绕过缓存,或者指定预编译的二进制包(如果可用)。 此外,Termux社区可能有已知的问题或解决方案,建议用户查看社区或问题追踪系统,特别是与ARM架构相关的问题,因为Termux通常在移动设备上运行,可能架构不同导致兼容性问题。 最后,可能需要分步骤指导用户:安装运行依赖、构建依赖,设置环境变量,使用合适的pip选项,以及验证安装后的库是否正确链接。如果所有步骤都失败,建议使用conda或尝试交叉编译,但在Termux中可能不可行,所以可能需要替代方案。</think>在Termux中安装`scikit-learn`(或其他科学计算包)出现 **"This is an issue with the package mentioned above"** 错误,通常与编译依赖、环境配置或包版本冲突有关。以下是系统级解决方案: --- ### **1. 根本原因分析** - **依赖缺失**:缺少科学计算库(如`openblas`)或编译工具(如`clang`、`make`)。 - **头文件丢失**:Python开发头文件(`python-dev`)未安装- **ABI不兼容**:某些预编译包与Termux的Android环境冲突(尤其是ARM架构)。 - **环境变量未生效**:未正确配置`BLAS`/`LAPACK`路径。 --- ### **2. 完整修复步骤** #### **步骤1:安装基础依赖** ```bash pkg update pkg install python clang make openblas libjpeg-turbo zlib liblapack ``` #### **步骤2:配置编译环境** ```bash # 设置编译器和科学库路径 export CC=clang export CXX=clang++ export BLAS=$PREFIX/lib/libopenblas.so export LAPACK=$PREFIX/lib/libopenblas.so export LD_PRELOAD=$PREFIX/lib/libopenblas.so # 确保Python头文件存在 pkg install python-dev ``` #### **步骤3:强制从源码构建** 禁用预编译二进制,避免ABI冲突: ```bash pip install scikit-learn --no-binary=scikit-learn ``` #### **步骤4:针对性修复依赖** 若报错指向`numpy`或`scipy`: ```bash # 先手动安装底层依赖 pip install numpy cython pybind11 --no-binary :all: pip install scipy --no-binary=scipy ``` --- ### **3. 关键错误处理** #### **错误1:`numpy.distutils.system_info.NotFoundError: No BLAS/LAPACK libraries found`** - **修复**:显式声明库路径 ```bash export NPY_BLAS_ORDER=openblas export NPY_LAPACK_ORDER=openblas ``` #### **错误2:`fatal error: 'Python.h' file not found`** - **修复**:安装Python开发文件 ```bash pkg install python-dev ``` #### **错误3:`undefined reference to 'cblas_dgemm'`** - **修复**:强制链接OpenBLAS ```bash export LDFLAGS="-L$PREFIX/lib -lopenblas" ``` --- ### **4. 替代安装方案** #### **方案1:使用Termux社区编译的包** ```bash pkg install scikit-learn # 如果仓库有预编译版本 ``` #### **方案2:使用conda-forge(需安装Miniforge3)** ```bash # 安装Miniforge3 wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" bash Miniforge3-*.sh # 创建独立环境 conda create -n sci-env scikit-learn ``` --- ### **5. 验证安装** ```python import sklearn print(sklearn.__version__) # 输出版本号 print(sklearn.show_versions()) # 检查依赖链 ``` --- ### **附:Termux科学计算环境推荐配置** | 包名称 | 作用 | 安装命令 | |----------------|----------------------|-----------------------------| | `openblas` | 加速矩阵运算 | `pkg install openblas` | | `clang` | C/C++编译器 | `pkg install clang` | | `python-dev` | Python开发头文件 | `pkg install python-dev` | | `libjpeg-turbo`| 图像处理支持 | `pkg install libjpeg-turbo` | --- 如果问题仍未解决,建议附加完整错误日志到:[Termux GitHub Issues](https://github.com/termux/termux-packages/issues)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inter_peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值