sam复现尝试过程中报错ModuleNotFoundError: No module named ‘_lzma‘

发布时间 2023-07-17 14:53:15作者: 海_纳百川

项目场景:

系统:centos7
python:3.8.16


问题描述

部署完python后将我们在windows环境中的scrapy文件传入我们的centos中后进行运行报错:
错误如下:

   from lzma import LZMAFile
  File "/usr/local/lib/python3.6/lzma.py", line 27, in <module>
    from _lzma import *
ModuleNotFoundError: No module named '_lzma'

目前已知该问题在python3.6以上版本会出现,暂定为一个bug


原因分析:

1、问题可能是没有下载lzma库,导致的
2、还有可能是导入错误原因导致的
这个时候我们仔细观察报错,/usr/local/lib/python3.6/lzma.py,我们找到这个文件,然后打开他找到27行也就是保存的那一行,将其更正就可以了。


解决方案:

首先下载lzma库

yum install xz-devel -y
yum install python-backports-lzma -y
pip install backports.lzma

 

找到报错文件的位置使用vi命令打开并且编辑改文件文件:

/usr/local/lib/python3.6/lzma.py

 

经引入部分修改为以下内容(修改位置大概在文件的27行左右):

import builtins
import io
import os
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
import _compression

 

修改后再次运行scrapy的项目文件完美运行无报错