You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.9使用fetch_openml下载MNIST时出现_bz2模块缺失报错

解决fetch_openml下载MNIST时的ModuleNotFoundError: _bz2问题

问题场景

  • Python版本:3.9.13
  • 已执行pip install scikit-learn安装scikit-learn,且已安装pandas
  • 运行以下代码时触发报错:
from sklearn.datasets import fetch_openml
raw_data = fetch_openml('mnist_784')
  • 报错末尾显示fetch_openml with as_frame=True requires pandas.,但实际深层错误为:
ModuleNotFoundError: No module named '_bz2'

错误原因

_bz2是Python内置的bzip2压缩处理模块,OpenML获取MNIST数据集时需要用它解压数据。出现该错误的核心原因是Python编译时缺少bzip2依赖库,导致_bz2模块未被正确编译到Python环境中。

解决方法

Linux(Ubuntu/Debian)

  1. 安装bzip2开发依赖:
sudo apt-get install libbz2-dev
  1. 重新编译Python 3.9.13:
    • 下载对应版本的Python源码并解压,进入源码目录
    • 执行编译安装命令:
    ./configure --enable-optimizations
    make -j$(nproc)
    sudo make altinstall
    

macOS

  1. 用Homebrew安装bzip2:
brew install bzip2
  1. 指定bzip2路径重新编译Python:
./configure --enable-optimizations --with-bz2=$(brew --prefix bzip2)
make -j$(sysctl -n hw.ncpu)
sudo make altinstall

Windows

直接从Python官网下载并重新安装官方预编译的Python 3.9.13安装包,预编译版本已默认包含_bz2模块;若自行编译Python,需确保编译环境包含bzip2开发库。

内容的提问来源于stack exchange,提问作者Saphira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:40:58