python解决 ModuleNotFoundError: No module named _bz2
大家好,又见面了,我是你们的朋友全栈君。
更新:
想到了以前这篇存在的问题来更新一下。直接塞个文件进去是能解决报错,但是有可能报缺少别的东西,治标不治本。装python的时候留意了一下,有两种情况:
- 就是bz2没装。
- 名称不同,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的,改了一下名发现好用了。用在其它版本的请对应改名。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134875.html原文链接:https://javaforall.cn
相关文章
- python break和continue
- 造数据神器Faker,一个有趣又实用的Python第三方库
- Python正则表达式保姆式教学,带你精通大名鼎鼎的正则!
- python实现微信发消息
- python dll注入监听_DLL注入和API拦截
- 提取视频中的音频——python三行程序搞定「建议收藏」
- 桌面太单调?一起用Python做个自定义动态壁纸,竟然还可以放视频!「建议收藏」
- python 访问LDAP服务器「建议收藏」
- Win10配置Airsim环境并设置Python通信
- 【过程记录】python环境离线迁移
- Python进阶40-drf框架(二)
- anaconda和python版本对照表
- XGBoost:在Python中使用XGBoost
- [Python从零到壹] 十六.文本挖掘之词云热点与LDA主题分布分析万字详解
- 进制转换python实验五_python进制转换:十进制转二进制的用法「建议收藏」
- python程序的热部署实现[通俗易懂]
- 用Python的turtle库画太极图
- 知乎高赞!有没有适合新手练习 Python 的做题类网站?
- Python字符串转换为日期时间– strptime()「建议收藏」
- python:最大公约数和最小公倍数