升级一个包整个环境就崩:numpy 1.x/2.x 断代是最经典的那种
pip install -U 随手升一个包,之后程序报 _ARRAY_API not found 或 cannot import name —— 本地 AI 栈依赖极深,torch 钉死了对应的 numpy/CUDA/torchvision 版本,升一个会顶掉另一个。最典型的断代是 numpy 2.x 与用 numpy 1.x 编译的扩展不兼容,报 _ARRAY_API not found,修法就一句:pip install "numpy<2"。判据是 pip check 列出的不兼容依赖对。
Python环境排错依赖管理版本冲突PyTorch这条适用于
- 多套 Python 并存(本类问题在本机更容易被放大)
- 刚刚用 pip install -U 无差别升级过 AI 栈里的包
版本指纹
三套 Python 并存环境;判据(pip check)跨项目通用
具体做法
# —— ① 看冲突全貌 ——
$ <你的python.exe> -m pip check
# 输出形如:torch 2.x requires numpy<2, but you have numpy 2.0.0
# —— ② 最经典的一招:把 numpy 拉回 1.x ——
$ <你的python.exe> -m pip install "numpy<2"
# 专治报错:RuntimeError: _ARRAY_API not found /
# A module that was compiled using NumPy 1.x cannot be run in NumPy 2.0.0
# —— ③ torch 三件套必须同 CUDA 编号(别只升一个)——
$ <你的python.exe> -m pip install torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cu124
# —— ④ 看某包依赖了什么 ——
$ <你的python.exe> -m pip show numpy
$ <你的python.exe> -m pip show torch | findstr Requires
# —— ⑤ 乱了就重来(常比逐个降级快)——
$ python -m venv .venv
$ .venv\Scripts\python.exe -m pip install -r requirements.txt
失效边界
适用边界:判据(pip check + 报错点名的包版本)在所有 Python 项目通用。本机实测环境为三套 Python 并存(见「pip 装成功却缺包」篇),所以本类问题在本机更容易被放大——先确认你改动的是哪一套环境,再动手。提醒:不要用 pip install -U 无差别升级 AI 栈里的包;也不要「一路降级」硬凑,兼容性问题成堆时新建干净 venv 重装往往更快更干净。
适用边界:判据(pip check + 报错点名的包版本)在所有 Python 项目通用。本机实测环境为三套 Python 并存(见「pip 装成功却缺包」篇),所以本类问题在本机更容易被放大——先确认你改动的是哪一套环境,再动手。提醒:不要用 pip install -U 无差别升级 AI 栈里的包;也不要「一路降级」硬凑,兼容性问题成堆时新建干净 venv 重装往往更快更干净。