python3.7解决ModuleNotFoundError: No module named ‘_bz2‘

最近因为我们有个数据清洗需求需要从excel中获取数据,考虑到python处理excel比较方便,所以就写了个python脚本处理。但是因为我们内网不能连接互联网,所以线上正式部署的时候让运维小哥哥帮忙安装了个python3.7的环境。

但是当我运行代码就出现了以下的错误

ModuleNotFoundError: No module named '_bz2'

笔者对python这一块不是很熟悉,所以我以为是缺少了相关的bz2的pip的包,但是实际上pip中没有相关的module

既然不是pip,那么是不是系统包缺少呢? 是不是yum相关的包缺少呢?

接着又让运维小哥哥yum install _bz2, 结果还是不行。说是已经安装了相关的bz2

到这里我就觉得有必要探索下python的依赖包是如何引用的了,大家跟着笔者的思路来一探究竟。

如果我们想要安装比如pandas的这个模块,我们会想到使用pip install pandas,系统在执行这个命令的时候,它首先会去把pandas相关的依赖一起整理出来,区分系统库和第三方库,先确认有没有系统库,没有的话就默认安装或者提示安装,之后再去python的第三方库中拉取其他第三方库安装。

我们常见的系统库包括

libxml2 和 libxslt:用于解析和处理XML文件。
libjpeg 和 libpng:用于处理图像文件。
libssl 和 libcrypto:用于加密和网络通信。
libsqlite3:用于处理SQLite数据库。

这里的_bz2 是linux系统上的python用来处理Bzip2的压缩库

但是运维通过命令检查到这个libbz2 或 libbz2-devel的库是存在的,所以我就很好奇是不是还缺少了一环。我们这个python3.7是新安装的,是不是运维少装了啥东西,应该是少了文件或者哪些包。

于是我顺着这个思路去找,在stackflow上发现了答案:
https://stackoverflow.com/questions/12806122/missing-python-bz2-module
于是就按照这个思路,把我们系统上原来的3.6下面的那个so文件拷贝到3.7的同级目录下,目录文件名类似如下:
…/python36/lib/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so

拷贝完成后再运行代码就ok了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 出现"ModuleNotFoundError: No module named _bz2"的错误是因为在使用Python时找不到_bz2模块解决这个问题的方法有几种。一种方法是根据\[1\]的建议,需要在本地编译生成_bz2模块。另一种方法是根据\[2\]的建议,将Python3.6中的_bz2库拷贝到Python3.7下。还有一种可能是因为执行脚本时使用的Python路径不正确,可以根据\[3\]的建议创建一个链接将_bz2模块挂载到正确的路径下。具体操作可以参考上述引用内容中提供的链接和命令。 #### 引用[.reference_title] - *1* [ModuleNotFoundError: No module named _bz2](https://blog.csdn.net/weixin_42587961/article/details/105779549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ModuleNotFoundError: No module named ‘_bz2‘问题解决](https://blog.csdn.net/u013685264/article/details/108274609)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ModuleNotFoundError: No module named ‘_bz2](https://blog.csdn.net/XCCCCZ/article/details/125646722)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值