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

一开始是在跑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)

 

 

转载于:https://my.oschina.net/yangertt2006/blog/839220

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值