esrally启动报错:ImportError: No module named bz2错误解决方法
esrally启动报错:ImportError: No module named bz2错误解决方法
仰望星空的伤心胖熊 发表于11个月前
esrally启动报错:ImportError: No module named bz2错误解决方法
  • 发表于 11个月前
  • 阅读 217
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 说来话长,解决这个问题起源于python的一个错误, 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)

 

 

标签: esrally
共有 人打赏支持
粉丝 0
博文 12
码字总数 8658
×
仰望星空的伤心胖熊
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: