Python pip 安装报错:Preparing metadata 失败的处理
现象


我这里的 Python 版本是 3.13.5,安装依赖时,numpy 自动拉取后直接报错,最后卡在 metadata 这一步。
线索
日志末尾有一句:
ninja: build stopped: subcommand failed.
这类报错通常不是 pip 本身坏了,而是底层构建没过。ninja 是常见的编译工具,负责把源码包编起来。问题出在这里:Python 3.13 刚出来没多久,很多包的编译链和预编译轮子还没完全跟上,自动选到的 numpy 版本偏新,就容易在构建阶段翻车。即使把 ninja 升到最新,也不一定能救回来。
处理办法
把 numpy 降到兼容的版本,别让 pip 自己选太新的包。
NumPy 与 Python 版本兼容表
| NumPy 版本 | 兼容的 Python 版本 |
|---|---|
| >2.1 | 3.13 |
| 1.26.0 | 3.9-3.12 |
| 1.25.0 | 3.9-3.11 |
| 1.24.0 | 3.8-3.11 |
| 1.23.0 | 3.8-3.10 |
| 1.22.0 | 3.8-3.10 |
| 1.21.0 | 3.7-3.9 |
我最后装的是 numpy 2.1.0,安装就正常了。这个问题本质上还是版本组合不对,Python 太新、依赖包又没完全适配时,优先看兼容表,比盯着构建日志硬查省事得多。

