文档章节

esrally启动报错:ImportError: No module named bz2错误解决方法

仰望星空的伤心胖熊
 仰望星空的伤心胖熊
发布于 2017/02/15 15:06
字数 618
阅读 1095
收藏 0

一开始是在跑esrally的时候,遇到的。

[root@soc bin]# ./esrally
Traceback (most recent call last):
  File "./esrally", line 7, in <module>
    from esrally.rally import main
  File "/usr/local/python/lib/python3.4/site-packages/esrally/rally.py", line 11, in <module>
    from esrally import config, paths, racecontrol, reporter, metrics, track, exceptions, PROGRAM_NAME, DOC_LINK
  File "/usr/local/python/lib/python3.4/site-packages/esrally/config.py", line 10, in <module>
    from esrally.utils import io, git, console, convert
  File "/usr/local/python/lib/python3.4/site-packages/esrally/utils/io.py", line 5, in <module>
    import bz2
  File "/usr/local/python/lib/python3.4/bz2.py", line 21, in <module>
    from _bz2 import BZ2Compressor, BZ2Decompressor
ImportError: No module named '_bz2'

最后一句:

ImportError: No module named '_bz2'

实际说明python运行的时候少了一个bz2的包。

先后尝试了pip3安装,都失败了:

pip3 install _bz2

pip3 install bz2

但实际系统当中是有这个包的:

[root@CentOS-7 bzip2-1.0.6]# yum install bzip2
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 bzip2-1.0.6-13.el7.x86_64 已安装并且是最新版本
无须任何处理

之后参考一些文章了解到,原来bz2本身编译的过程如果不完善会导致python安装的时候,无法正确安装bz2模块。看来只能重装了。

1、重装bzip2

wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar -zxf  bzip2-1.0.6.tar.gz 

cd bzip2-1.0.6  

make -f  Makefile-libbz2_so 

make && make install

注:make-f   //-f 标志是使bzip2 根据另一个Makefile来编译,就是Makefile-libbz2_so文件,创建一个动态的libbz.so库文件,然后把bzip2工具连接到这个库上

装python的时候如果没有这一步,python安装不上bz2模块

2、重新编译python

具体步骤和安装Python的步骤其实一样,最主要就是从./configure --prefix=/usr/local/python开始向下重新做一遍就是了。

3、验证bz2包是否正确安装。

Python安装完成后,进入测试一下:

[root@CentOS-7 bin]# python
Python 3.4.6 (default, Feb 15 2017, 17:57:43) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bz2
>>> 

否则bz2会提示如下错误:

>>> import bz2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/python/Python-3.4.6/Lib/bz2.py", line 21, in <module>
    from _bz2 import BZ2Compressor, BZ2Decompressor
ImportError: No module named '_bz2'
>>> 

至此,OK完整解决。运行esrally也出效果了。

[root@CentOS-7 bin]# ./esrally 

    ____        ____
   / __ \____ _/ / /_  __
  / /_/ / __ `/ / / / / /
 / _, _/ /_/ / / / /_/ /
/_/ |_|\__,_/_/_/\__, /
                /____/

Running simple configuration. Run the advanced configuration with:

  esrally configure --advanced-config

INFO:rally.config:Running simple configuration routine.
[✓] Autodetecting available third-party software
which: no gradle in (/usr/local/java/jdk1.8.0_121/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

 

 

© 著作权归作者所有

共有 人打赏支持
仰望星空的伤心胖熊
粉丝 0
博文 16
码字总数 9715
作品 0
南京
产品经理
加载中

评论(2)

J
JohnsenZha
建议参考这个网站
https://stackoverflow.com/questions/8115280/importerror-no-module-named-bz2-for-python-2-7-2/20987218?newreg=c3ea85dd472d46898e7e45faa2afd7a1
的ck.nguyen的回答
洛子墟
洛子墟
很有帮助
debian5 安装node.js

node.js安装环境需要python的版本是2.6或者2.7以后的,而在debian5上默认的python版本是2.5的,所以第一步得先升级python版本,然后才能安装node.js。 1 安装编译环境 apt-get install buil...

China_OS
2013/10/14
0
0
ubuntu切换python默认版本从2.7到3.5后 报错 ImportError: No module named 'pip'

使用pip遇到错误ImportError: No module named packaging.version的解决方法 2017年03月22日 16:08:33 阅读数:3148 由于需要用到pip,所以在Ubuntu上安装了一个,由于Python是2.7版本的,所...

Jake_xun
05/16
0
0
使用pip遇到错误ImportError: No module named packaging.ve

由于需要用到pip,所以在Ubuntu上安装了一个,由于Python是2.7版本的,所以装的并不是pip3。 附pip安装命令: sudo apt-get install python-pip 本来用得好好的,在执行一次之后突然报错:I...

ljianbing
07/11
0
0
saltstack试用篇:一、源码安装与简单配置

本系列文章由初学者写,高手就不要浪费时间了 环境:centos6.2 minimum(最小化安装) 特点:无外网 测试机没有外网,就自己手动源码安装把,的确是要累一些...做个笔记记录一下 官方文档说:...

potaski
2013/10/31
0
0
saltstack的启动报错大部分是因为python!!!

今天安装saltstack 来对之前的笔记做些修正,saltstack默认的是2.7版本的python工具,如果不是纯净的操作系统的话,也可能启动会发生各种各样的错误, 在网上没有找到任何的解决办法,因为碰...

大成无敌
2017/12/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部