【有图有真相】Python3报错:ModuleNotFoundError: No module named ‘_bz2‘

现象:利用docker部署python3.7 运行django结果莫名其妙的报了如下问题

 说是没找到_bz2

该错误是缺失_bz2.cpython-36m-x86_64-linux-gnu.so这个os文件,处理步骤如下:

1)centos可以yum安装一下: yum install bzip2-devel

2)https://download.csdn.net/download/knockheart/20418132

3)将下载后的文件放自己python对应环境到文件夹里

特别注意!!这里文件名要匹配

        如果你的python使用的是3.6 那么文件_bz2.cpython-36m-x86_64-linux-gnu.so

         如果你的python使用的是3.7 那么文件_bz2.cpython-37m-x86_64-linux-gnu.so

        例如:a)  …/python36/lib/python3.6/lib-dynload/;

                   b)  /usr/local/lib/python3.7/lib-dynload/;

                   ……等等

4) 有权限要求别忘记授权使用"chmod +x _bz2.cpython-36m-x86_64-linux-gnu.so"增加该文件的可执行权限

5)普通操作以python3.7为例,目标路径根据自己实际情况

mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-37m-x86_64-linux-gnu.so
cp _bz2.cpython-37m-x86_64-linux-gnu.so /usr/local/python3/lib/python3.7/lib-dynload/

5)本人是docker环境 操作如下,目标路径根据自己实际情况【python3替换成自己的容器名称】

mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-37m-x86_64-linux-gnu.so
docker cp _bz2.cpython-37m-x86_64-linux-gnu.so python3:/usr/local/lib/python3.7/lib-dynload/

其他补充:

再次运行程序可能还会报错:ImportError: libbz2.so.1.0: cannot open shared object file: No such file or directory

  1.首先需要使用sudo yum install -y bzip2* 确保系统已经安装了相关的库;

  2.此时会发现在/usr/lib64目录下会发现其实有libbz2.so.1.0.6这样一个文件,我们只需要在该目录下使用命令

"sudo ln -s libbz2.so.1.0.6 libbz2.so.1.0"创建一个该文件的软连接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值