0%

python报错 ModuleNotFoundError: No module named "_lzma"

运行scrapy爬虫项目时报错:ModuleNotFoundError: No module named ‘_lzma‘,很多文章的解决方案是重新安装python,但重新安装后会发现一样还是会报错,报错如下图:

python

解决思路:用backports.lzma代替_lzma包

解决步骤

1、安装依赖

1
sudo apt-get install liblzma-dev

如果报如下镜像404错误,先升级一下apt:sudo apt update

2、安装替代库 backports.lzma

1
pip3 install backports.lzma

3、修改lzma.py源码

lzma.py源码文件路径在上图,根据自己的环境位置确定该文件的地址,或者可根据 find / -name lzma.py找到源码文件路径

修改/Users/xiexiang/.pyenv/versions/3.10.10/lib/python3.10/lzma.py这个文件:

1
2
3
4
5
6
7
8
9
10
11
12
#修改前
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

4、验证

爬虫就正常运行了