python解决 ModuleNotFoundError: No module named _bz2

更新:

想到了以前这篇存在的问题来更新一下。直接塞个文件进去是能解决报错,但是有可能报缺少别的东西,治标不治本。装python的时候留意了一下,有两种情况:

  1. 就是bz2没装。
  2. 名称不同,python3有_bz2和bz2,python2只有bz2

bz2这东西是底层系统的模块,不是python pip安装的部分,要在你编译python之前装好。如果已经报错了,则要装了bz2以后重新编译安装python。实际上在服务器上安装自己的python的时候少了很多模块,但是也不是python组件必要的,于是它给你列出了(如下图所示)。虽说你也完成了安装,日后就留下了伏笔。bz2作为系统组件要root装的,服务器环境这么搞不太合适。

所以服务器上非root最直接的方法是:

请使用Anaconda

在装python的时候就把依赖全部配置好了,省事。

接着我试了下:

python2下,有bz2没有_bz2

python3下,都有的。

yysy,服务器没有roor的情况,还是anaconda好用。


在服务器上安装python3.6.5,之前用的没什么问题,今天使用matplotlib给出了报错。

报错内容:

    from _bz2 import BZ2Compressor, BZ2Decompressor

ModuleNotFoundError: No module named '_bz2'

看了一堆些常见的解决教程,都不好用,后来看了了stackflow发现了问题:

https://stackoverflow.com/questions/12806122/missing-python-bz2-module

linux下使用官方source release安装会出现这个问题,而apt-get之类的则不会。

由于缺少root权限,也没有yum可以用,所以好多方法都不好用。直到看到这篇:

Linux下非Root用户解决ImportError: No module named bz2

说白了少个文件,它不一定叫bz2.so,但是大概是lib-dynload文件下的含有bz2的so文件,复制到自己的python的同名文件夹下就好了。

路径全称:.../python36/lib/python3.6/lib-dynload/

我找到的文件叫:_bz2.cpython-36m-x86_64-linux-gnu.so

里面-36m是版本对应的,也必须改,例如python3.5版本就应该叫-35m。

分享这个文件,不知道哪天失效:https://pan.baidu.com/s/1fHhxNiHOLKDqZ-9wHw3JTA

 

后记:我从服务器python3.5里面拿过来的,刚拿过来不好用,它一开始叫bz2.cpython-36m-x86_64-linux-gnu.so,

我自己用的python3.6,看了一眼目录里都是-36m的,改了一下名发现好用了。用在其它版本的请对应改名。

回答: 出现"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 ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值