报错如下:

AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

这是因为 Python 3.12 移除了对 pkgutil.ImpImporter 的支持,而某些库(例如 setuptools 或 numpy 的旧版本)依赖于旧的导入机制。

解决方案

1. 降级到兼容的 Python 版本

numpy 和一些旧的依赖库在 Python 3.12 下出现兼容性问题,建议使用 Python 3.11

具体步骤

  1. 安装 Python 3.11(如果未安装):

    brew install python@3.11
  2. 在虚拟环境使用 Python 3.11: 在项目目录下重新创建虚拟环境:

    python3.11 -m venv venv
  3. 激活虚拟环境

    source venv/bin/activate   #虚拟环境路径
  4. 升级 pipsetuptoolswheel

    pip install --upgrade pip setuptools wheel
  5. 重新安装项目依赖

    pip install -r requirements.txt

2. 如果无法降级 Python 版本

尝试手动更新有问题的依赖库,例如 setuptoolspkg_resources

pip install --upgrade setuptools pip
pip install --force-reinstall setuptools==67.0.0

这个版本的 setuptools 对旧的导入机制提供兼容性支持。


总结

  • 目前的报错是因为 Python 3.12 移除了旧的 pkgutil.ImpImporter 支持。
  • 推荐降级到 Python 3.11,重新创建虚拟环境,并安装依赖。
  • 如果必须使用 Python 3.12,可以尝试兼容的 setuptools 版本(例如 67.0.0)。
  • 作者:m0_47156047

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python 3.12安装库报错

    发表回复