Python自动化测试出现ImportError: liblapack.so.3gf错误求助
解决ImportError: liblapack.so.3gf找不到的问题
我之前在Debian 9环境下也碰到过一模一样的问题,给你几个实用的解决方案:
1. 先理清库文件的命名差异
Debian和Ubuntu对lapack库的命名有区别:Ubuntu用liblapack.so.3gf,但Debian 9里对应的标准库名是liblapack.so.3。先执行这个命令确认系统里的lapack库情况:
find /usr/lib/x86_64-linux-gnu -name "liblapack.so.*"
如果输出里只有liblapack.so.3(或带具体版本号的liblapack.so.3.7.1这类),那问题根源就是命名不匹配。
2. 创建软链接适配所需库名
既然程序找的是liblapack.so.3gf,我们给现有的Debian版库创建一个软链接就行:
sudo ln -s /usr/lib/x86_64-linux-gnu/liblapack.so.3 /usr/lib/x86_64-linux-gnu/liblapack.so.3gf
然后更新系统的动态链接库缓存:
sudo ldconfig
这时候再运行你的Python测试脚本,应该就能找到库文件了。
3. 确保安装完整的lapack依赖包
如果软链接方法没生效,先检查是否安装了完整的lapack相关包:
sudo apt-get update && sudo apt-get install liblapack3 liblapack-dev
安装完成后重新执行ldconfig,再测试脚本。
4. 重新编译适配Debian的Python依赖包
如果你的测试依赖numpy、scipy这类需要lapack的库,可能这些库是从Ubuntu预编译包安装的,自带了Ubuntu的库依赖。这种情况下,最好在Debian系统上重新编译安装:
# 先卸载现有包 pip uninstall numpy scipy # 安装编译所需的系统依赖 sudo apt-get install gcc gfortran python3-dev # 重新安装(会自动适配当前系统编译) pip install numpy scipy
内容的提问来源于stack exchange,提问作者linuxstack
相关产品推荐
相关产品推荐

