缺少lzma模块
问题描述
运行训练脚本显示如下错误:
File “/usr/local/python3.7.5/lib/python3.7/lzma.py”,line27,in <module> from _lzma import* ModuleNotFoundError: No module named '_lzma'
可能原因
Python 3.3版本以上会自带lzma模块,若用户是通过源码安装的Python,且系统中没有安装lzma-dev包,就不会安装lzma模块。
解决方法
- 如果用户正在使用的Python是通过源码安装的,需要先安装系统依赖。
此处以CentOS与Ubuntu操作系统为例。
- Ubuntu
apt-get install -y liblzma-dev
- CentOS
yum install -y xz-devel yum install -y python-backports-lzma
个别OS(如openEuler 20.03 LTS)安装xz-devel依赖后即可安装lzma,无需安装python-backports-lzma依赖。
- Ubuntu
- 执行如下命令安装lzma。
pip3 install backports.lzma
- 根据报错信息中的报错路径,执行如下命令修改“lzma.py”文件(此路径仅为示例,请用户以实际情况为准)。
vi /usr/local/python3.7.5/lib/python3.7/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
父主题: FAQ