【问题标题】:Missing _bz when using fetch_openml // Missing _lzma when importing torchvision使用 fetch_openml 时缺少 _bz // 导入 torchvision 时缺少 _lzma
【发布时间】:2022-11-26 07:35:41
【问题描述】:

我正在使用 Python 3.9.13。我从终端安装了 scikit-learn: pip install scikit-learn

然后我尝试使用fetch_openml 下载 mnist 数据集:

from sklearn.datasets import fetch_openml
raw_data = fetch_openml('mnist_784')

这给了我一条很长的错误信息,结尾是:

fetch_openml with as_frame=True requires pandas.

但是,我安装了pandas。所以我更深入地查看了错误消息,发现导致该错误的异常是这样的:

ModuleNotFoundError: No module named '_bz2'

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:

    我环顾四周,在this thread 找到了解决方案。

    我只需要向该解决方案添加另一个步骤。 安装 libbz2-dev 后,我的计算机上只有 _bz2.cpython-38-x86_64-linux-gnu.so 用于 python 3.8.x,所以它不适用于我的 python 版本。 我将文件名更改为_bz2.cpython-39-x86_64-linux-gnu.so,之后就可以使用了。

    sudo apt-get install libbz2-dev
    sudo cp /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.9/
    sudo mv /usr/local/lib/python3.9/_bz2.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.9/_bz2.cpython-39-x86_64-linux-gnu.so
    

    【讨论】:

      【解决方案2】:

      当我想导入 torchvision 时,我遇到了与 _lzma 库类似的问题。

      通过在终端中运行以下行解决了该问题:

      sudo apt install liblzma-dev
      sudo cp /usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.9/
      sudo mv /usr/local/lib/python3.9/_lzma.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.9/_lzma.cpython-39-x86_64-linux-gnu.so
      

      【讨论】:

        猜你喜欢
        • 2021-05-15
        • 2022-07-03
        • 2019-12-06
        • 1970-01-01
        • 2022-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多