没有名为' _bz2'在python3中

时间:2018-05-14 17:00:48

标签: python python-3.x matplotlib importerror bzip2

尝试执行以下命令时:

  

将matplotlib.pyplot导入为plt

发生以下错误:

  

来自_bz2 import BZ2Compressor,BZ2Decompressor ImportError:没有模块   命名为' _bz2'

所以,我试图使用以下方法在 Ubuntu 中安装 bzip2 模块:

  

sudo pip3 install bzip2

但是,终端中会弹出以下语句:

  

无法找到满足要求bzip2的版本(来自   版本:)没有找到bzip2

的匹配分布

我该怎么做才能解决问题?

3 个答案:

答案 0 :(得分:1)

就我而言,我在导入 Pandas 时遇到了错误。安装 Python 3.9 解决了。

我的 python 版本是 3.8.6。我正在使用 Pyenv 并运行 MacOS Big Sur。

错误

$ python
Python 3.8.6 (default, Nov 21 2020, 02:39:42)
[Clang 12.0.0 (clang-1200.0.32.27)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
Traceback (most recent call last):
...
    from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'

已安装 3.9.1

$ pyenv install --list
$ pyenv install 3.9.1
$ pyenv local 3.9.1
$ pyenv global 3.9.1
$ pip install pandas

再来

$  python
Python 3.9.1 (default, Jul  5 2021, 22:26:09)
[Clang 12.0.5 (clang-1205.0.22.11)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>>

答案 1 :(得分:0)

如果您自己编译python,则需要先安装libbz2标头和.so文件,以便python在bz2支持下进行编译。

在ubuntu上,apt-get install libbz2-dev然后编译python。

答案 2 :(得分:0)

最后,我用python3.9在centos中解决了这个问题,当一切都无法工作时,

  1. 我们可以下载文件:_bz2.cpython-38-x86_64-linux-gnu.so。
<块引用>

下载这个文件:https://pan.baidu.com/s/1iPuEBYnUABWf94QM9fQZgQ提取码:nw2g

  1. 然后重命名文件,因为我使用的是python3.9,这个文件是python3.8:

    cp _bz2.cpython-38-x86_64-linux-gnu.so /usr/local/python3/lib/python3.9/lib-dynload/

  2. 如果不起作用,请修改文件权限

<块引用>

chmod +x _bz2.cpython-38-x86_64-linux-gnu.so

  1. 如果它报告 ImportError: libbz2.so.1.0: cannot open shared object file: No such file or directory ,我们应该确保安装了 bzip。采用: yum install -y bzip2*。 然后执行 ln -s /usr/lib64/libbz2.so.1 /usr/lib64/libbz2.so.1.0 。执行python3 -c 'import _bz2',可以正常工作!!!

我从 https://www.jianshu.com/p/b722adc2ba52 搜索。