pip安装scitools-iris报错Getting requirements to build wheel失败
报错根因
错误发生在拉取构建cf-units~=3.0.1依赖的阶段,核心原因是cf-units 3.0.1.post0的安装脚本写法不兼容高版本setuptools,触发AttributeError: 'NoneType' object has no attribute 'get',和pip本身功能无关,也不是未按官方文档操作导致的。
修复步骤
按顺序执行以下命令即可解决:
- 先确认已安装所有系统级依赖,尤其是udunits2开发库:
sudo apt update && sudo apt install -y libudunits2-dev
- 安装兼容版本的setuptools,关闭pip的构建隔离环境避免自动拉取最新不兼容的setuptools:
pip install setuptools==64.0.0 wheel pip install --no-build-isolation cf-units==3.0.1.post0
- cf-units安装完成后,回到scitools-iris的源码根目录,重新执行开发者模式安装命令即可:
pip install -e .
注意事项
如果后续安装其他老旧Python包时遇到同类wheel构建报错,可优先排查是否为构建依赖的setuptools版本过高导致,手动指定setuptools<65的版本作为构建依赖即可解决绝大多数这类问题。
不要在安装cf-units 3.0.x版本前将setuptools升级到65及以上版本,否则必然触发本次遇到的错误。
内容的提问来源于stack exchange,提问作者kyle
相关产品推荐
相关产品推荐

