近期要在SLE 12上配置Python环境,期间出现了这个问题
在网上搜了很久,大部分都是centos的解决方法,使用yum来安装。但是SUSE没有yum也没有apt只有zypper,我在zypper上没折腾出来。于是打算自己去找安装包。
解决过程
1、下载xz-devel
http://rpmfind.net/linux/RPM/opensuse/15.3/x86_64/xz-devel-5.2.3-4.3.1.x86_64.html
去这个网站找(点击Source RPM后面的link就可以下载)
下载后先不要安装,因为这个包依赖于liblzma.so.5.2.3
,见第2步。
2、下载 liblzma5-5.2.3-118.1.x86_64.rpm及安装
http://rpm.pbone.net/info_idpl_54426249_distro_opensuse_com_liblzma5-5.2.3-118.1.x86_64.rpm.html
去这个链接下载 liblzma5-5.2.3-118.1.x86_64.rpm
然后在下载目录下
sudo rpm --replacefiles -ivh liblzma5-5.2.3-118.1.x86_64.rpm
加 --replacefiles的作用是系统可能会报conflict的错误(如果系统已经有其他版本的liblzma的话)
查看是否安装成功(默认安装的话在/usr/lib64
会有liblzma.so.5.2.3
文件)
ls /usr/lib64 | grep liblzma
若成功,就可以安装xz-devel
了
下载目录下
sudo rpm -ivh xz-devel-5.2.3-4.3.1.x86_64.rpm
3、pip下载backports.lzma并修改lzma.py
直接
pip3 install backports.lzma
然后找到 lzma.py
文件(根据报错信息显示的路径)
作如下修改
修改前
from _lzma import *
from _lzma import _encode_filter_properties, _decode_filter_properties
修改后
try:
from _lzma import *
from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
from backports.lzma import *
from backports.lzma import _encode_filter_properties, _decode_filter_properties
即可解决。