Linux【Ubuntu18.04】python3.7 导包报错:No module named ‘_lzma’

报错日志

在导入datasets包时, 里面相关包进行了import lzma,import lzma中进行了import _lzma,于是出现报错:

No module named ‘_lzma’

解决方法

从python 3.3开始,lzma就是python自带的模块了。 虽然python
3.3+自带lzma模块,可是如果你是从源码安装的python,而且系统中没有安装lzma-dev包,那么就不会安装lzma模块。

1、安装

sudo apt-get install liblzma-dev
pip3 install backports.lzma

2、修改lzma.py文件,该文件在python安装目录下,比如我在/usr/local/lib/python3.7下

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

再次导包没有出现报错了!!
当然,换个高版本的python也能解决问题,我当前环境的python版本是3.7.4,在另一个docker里的python版本是3.7.7,没有出现这样的问题,具体哪个版本行得通还是要多尝试。

你可能感兴趣的:(linux,python,深度学习,人工智能,神经网络)