下载
中文
注册

执行Python脚本报错,提示:No module named _bz2

现象描述

执行Python脚本报错,提示没有_bz2模块:No module named _bz2。

可能原因

该依赖库不是Python库,而是C语言的系统动态库,属于Python的底层库,需要在编译Python阶段一起编译才能使用。

解决方案

  1. 使用sudo或root用户执行安装bz2。
    • Ubuntu22.04版本镜像:
      sudo apt-get update
      sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
    • OpenEuler22.03版本镜像:
      yum install -y bzip2* zlib zlib-devel
  2. 下载Python安装包,并使用本地域用户执行重新编译并安装Python,Python版本可自行决定。
    cd <python安装包路径>
    ./configure --prefix=/usr/local/python3.9.7 --enable-loadable-sqlite-extensions --enable-shared --enable-optimizations
    make -j4
    sudo make install