Ubuntu20.4下Python2.7安装scikits.umfpack失败求助
解决Python2.7下scikits.umfpack安装失败问题
Ubuntu 20.04 平台
1. 安装系统级UMFPACK依赖
scikits.umfpack依赖系统的UMFPACK库,Ubuntu 20.04中可通过以下命令安装完整依赖:
sudo apt-get update && sudo apt-get install libsuitesparse-dev
2. 修复Python2.7的pip环境
Ubuntu 20.04默认未预装Python2.7的pip,先安装并适配支持Python2.7的版本:
sudo apt-get install python2-pip # 升级到支持Python2.7的最后稳定pip版本 pip2 install --upgrade pip==20.3.4
3. 指定依赖路径安装
手动设置UMFPACK的头文件和库路径,避免pip无法定位依赖:
export UMFPACK_INCLUDE_DIR=/usr/include/suitesparse export UMFPACK_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu pip2 install scikits.umfpack
4. 源码编译(针对KeyError: 'libraries'问题)
若上述步骤仍报错,直接从源码编译并修正配置:
- 克隆源码仓库:
git clone https://github.com/scikit-umfpack/scikit-umfpack.git cd scikit-umfpack
- 编辑
setup.py,找到UMFPACK配置段,确保libraries字段包含所需库,示例修改:
umfpack_info = dict( libraries=['umfpack', 'suitesparseconfig'], include_dirs=[os.environ.get('UMFPACK_INCLUDE_DIR', '/usr/include/suitesparse')], library_dirs=[os.environ.get('UMFPACK_LIBRARY_DIR', '/usr/lib/x86_64-linux-gnu')] )
- 执行编译安装:
python2 setup.py install
Windows 平台
1. 使用预编译wheel包(最简方案)
找到对应Python2.7、Windows架构(32/64位)的scikits.umfpack预编译.whl文件,直接用pip安装:
pip2 install scikits_umfpack-xxx-cp27-none-win_amd64.whl
2. 手动编译(若无合适wheel)
- 安装Visual Studio 2010(Python2.7需对应该版本编译器)或MinGW工具链。
- 下载Suitesparse源码,编译生成UMFPACK的头文件(
.h)和静态/动态库(.lib/.dll)。 - 设置环境变量:
INCLUDE添加UMFPACK头文件所在路径LIB添加UMFPACK库文件所在路径
- 执行安装命令:
pip2 install scikits.umfpack
通用注意事项
- 确保安装的scikits.umfpack版本支持Python2.7(如0.3.2版本)
- 验证numpy、scipy版本与Python2.7兼容,建议使用numpy<1.17、scipy<1.3的版本
内容的提问来源于stack exchange,提问作者Mema Stamataki
相关产品推荐
相关产品推荐

