我要安装兼容 NumPy 1.x 的 PyTorch/TorchVision,给我推荐一下
作成日: 2025年4月25日
作成日: 2025年4月25日
我要安装兼容 NumPy 1.x 的 PyTorch/TorchVision,给我推荐一下
以下方案帮 你在 依旧坚持 NumPy 1.x 的环境里安装 PyTorch / TorchVision,并给出不同版本与安装命令示例。先给个一句话总结:** PyTorch 2.4 分支(含 2.4.1)官方 wheel 就是用 NumPy 1.26 构建的,因而与 1.x 完全兼容;如果你想用更老的 LTS 版本,则选 1.13.1 也一样安全**。
选择 | 兼容性依据 | 适用场景 |
---|---|---|
PyTorch 2.4.x / TorchVision 0.18.x | 2.4 官方 Windows wheel 被证实“仍用 NumPy 1.x 编译”——因此对 1.x 友好;升级到 NumPy 2.0 反而会报错,需要继续保持 1.x GitHub。论坛实测显示 torch==2.4.0 + numpy 1.26.4 正常工作 PyTorch Forums。 | 想用 2.x 新特性(如 torch.compile)但必须锁定 NumPy 1.x |
PyTorch 1.13.1 / TorchVision 0.14.1 | 1.13 时代编译链完全基于 NumPy 1.2x,对 1.x 最稳;遇到 NumPy ≥2.0 时会直接提示降级 Stack Overflow。 | 想要长期支持(LTS)或与旧代码库保持一致 |
⚠️ 从 2.5 起官方已在 CI 中尝试用 NumPy 2.0 构建以同时兼容 1.x/2.x ABI GitHub,但社区仍不断出现 “2.5 + NumPy 2.x” 的崩溃报告 Stack Overflow;如果你必须禁止 NumPy 2.x,就别往 2.5+ 冒险。
NumPy 版本 | 推荐 PyTorch | 推荐 TorchVision |
---|---|---|
1.20 – 1.26 (Python ≥3.8) | 2.4.1 | 0.18.1 |
1.17 – 1.24 (Python ≥3.7) | 1.13.1 | 0.14.1 |
版本号参考自 PyTorch 官方“旧版本安装”页 PyTorch。
以下均假设你已经先把 NumPy 固定在
<2.0
:
bash# CPU 版(跨平台) pip install "numpy<2" torch==2.4.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cpu # CUDA 11.8 版(Linux/Windows) pip install "numpy<2" torch==2.4.1+cu118 torchvision==0.18.1+cu118 \ --extra-index-url https://download.pytorch.org/whl/cu118
对 1.13.1 同理,只需把版本号替换为 torch==1.13.1 torchvision==0.14.1
即可;CUDA/ROCm 轮子索引请在官方旧版本页面查找对应链接 PyTorch。
bash# CPU 例 conda install pytorch==2.4.1 torchvision==0.18.1 cpuonly -c pytorch conda install "numpy<2"
pythonpython - <<'PY' import torch, torchvision, numpy as np print("Torch:", torch.__version__, "| TorchVision:", torchvision.__version__, "| NumPy:", np.__version__) PY
若出现 “Numpy is not available without upgrading/downgrading” 之类错误,一般是环境里混入了 NumPy 2.x——直接 pip install "numpy<2"
重装即可 Stack Overflow。
Windows GPU 用户 vs NumPy 2.x
已知 2.4 Windows 版 wheel 在装入 NumPy 2.x 时会崩溃,症状为 RuntimeError: Numpy is not available…
。官方 issue 已确认并建议回退 NumPy(或等 2.5+ 新 wheel)GitHub。
源码编译
如需从源代码编译 PyTorch,务必在编译环境里装 NumPy 1.26;若误装 2.x,会因 ABI 不匹配导致二进制损坏 GitHub。
TorchVision 与 PyTorch 不匹配
若出现 torchvision
找不到算子,通常是版本不对齐。官方兼容矩阵在 TorchVision GitHub README 顶部,务必配套安装 PyTorch Forums。
torch==2.4.1 torchvision==0.18.1 numpy<2
——新特性+完美支持 NumPy 1.xtorch==1.13.1 torchvision==0.14.1 numpy<2
——经典稳定按照上面命令执行,基本就能在保持 NumPy 1.x 的前提下,顺利使用 PyTorch/TorchVision。祝安装顺利,玩得开心!
accelerate==1.6.0
diffusers==0.33.1
transformers==4.46.2
gradio==5.23.0
sentencepiece==0.2.0
pillow==11.1.0
av==12.1.0
numpy==1.26.2
scipy==1.12.0
requests==2.31.0
torchsde==0.2.6
einops
opencv-contrib-python
safetensors
符合上面依赖的 PyTorch/TorchVision环境,搜索一下,并给我排查思路
accelerate==1.6.0
diffusers==0.33.1
transformers==4.46.2
gradio==5.23.0
sentencepiece==0.2.0
pillow==11.1.0
av==12.1.0
numpy==1.26.2
scipy==1.12.0
requests==2.31.0
torchsde==0.2.6
einops
opencv-contrib-python
safetensors
符合上面依赖的 PyTorch/TorchVision环境,搜索一下,并给我排查思路
一句话总结
把 torch==2.4.1
配 torchvision==0.18.1
(或同一 CUDA tag 的 GPU 轮子)基本能一次性满足你列出的全部版本锁定,同时继续兼容 NumPy 1.26 而不会触发 PyTorch 对 NumPy 2 ABI 的已知崩溃;所有列出的 Hugging Face 组件(diffusers 0.33.1
、transformers 4.46.2
、accelerate 1.6.0
)和研究包 torchsde 0.2.6
都在官方声明里只要求 “torch ≥ 1.6/1.13” 左右,因此与 2.4 分支完全兼容。下面给出兼容矩阵、安装命令,以及出现冲突时的快速排查清单。
依赖 | 官方最低 / 偏好 Torch 版本 | 与 torch 2.4.1 兼容性 |
---|---|---|
diffusers 0.33.1 | torch extra,无上限,文档以 2.x 为示例 | ✅ PyPI 页面标注“State-of-the-art diffusion in PyTorch”(PyPI) |
transformers 4.46.2 | install_requires 只列基础包;Torch 由 extra 管理,源码仍用 is_torch_greater_or_equal_than_1_13 判断特性(GitHub) | ✅ |
accelerate 1.6.0 | 1.6.0 发布说明主推 FSDP v2 / DeepSpeed TP,开发测试基于 Torch 2.4(GitHub)(PyPI) | ✅ |
torchsde 0.2.6 | “PyTorch ≥ 1.6.0”(PyPI) | ✅ |
NumPy 1.26.x | Torch 2.4 官方 wheel 仍以 1.x ABI 构建(NumPy 2 相关问题追踪)(GitHub) | ✅ |
TorchVision 0.18.1 | 与 Torch 2.4.* 对齐的官方配套版本(见 “Previous Versions” 表)(PyTorch) | ✅ |
为何不选 2.5+? 2.5 起部分 wheel 开始用 NumPy 2 测试,但社区仍有 “NumPy 2.x + PyTorch 2.5” 崩溃报告;而你显式锁了 NumPy 1.26,因此 2.4.* 是最安全的上限(Stack Overflow)。
bashpip install "numpy<2" torch==2.4.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cpu pip install accelerate==1.6.0 diffusers==0.33.1 transformers==4.46.2 \ gradio==5.23.0 sentencepiece==0.2.0 pillow==11.1.0 av==12.1.0 \ scipy==1.12.0 requests==2.31.0 torchsde==0.2.6 \ einops opencv-contrib-python safetensors
bashpip install "numpy<2" torch==2.4.1+cu118 torchvision==0.18.1+cu118 \ --extra-index-url https://download.pytorch.org/whl/cu118 # 其余依赖同上
如需其它 CUDA 版本(cu121/cu124)或 ROCm,请在 [PyTorch “previous versions” 页面] 查找匹配 wheel URL(PyTorch)。
bashpython -m pip check # 列出依赖版本冲突 pipdeptree -w silence # 查看哪条链条拉错了版本 python - <<'PY' import torch, torchvision, numpy, diffusers, transformers, accelerate, torchsde print(torch.__version__, torchvision.__version__, numpy.__version__) PY
症状 | 根因定位 | 快速修复 |
---|---|---|
RuntimeError: Numpy is not available … | 环境里误装了 NumPy 2 | pip install --force-reinstall "numpy<2" (Stack Overflow) |
ImportError: Using the Trainer with PyTorch requires accelerate>=0.20.1 | Transformers 找不到 Accelerate | 你已装 1.6.0,应确保 先 安装 accelerate,再装 transformers;或 pip install --upgrade accelerate (GitHub) |
CUDA 相关 libcudart.so Version mismatch | CUDA 轮子与本机驱动/ToolKit 不匹配 | 对照 PyTorch 下载页选择正确的 +cuXXX tag;驱动需 ≥ 运行时要求(GitHub) |
安装后又被其它包“自动降级/升级” Torch | pip install 顺序错误或 resolver 回退 | 先锁定 torch*/torchvision* 再装其他依赖;必要时加 --no-deps 针对性重装(GitHub) |
TorchVision 算子缺失 | TorchVision 与 Torch 版本不匹配 | 保证 0.18.* ↔ 2.4.* 一一对应(PyTorch) |
torch
/torchvision
/numpy
→ import torch; torch.zeros(1)
pip check
gradio
, opencv
, torchsde
…)。pipdeptree
输出锁定具体 package,引入 --no-deps
或降级即可。environment.yml
片段(conda 用户)yamlname: torch24_env channels: - pytorch - conda-forge dependencies: - python=3.10 - pytorch=2.4.1 - torchvision=0.18.1 - numpy<2 - pip - pip: - accelerate==1.6.0 - diffusers==0.33.1 - transformers==4.46.2 - gradio==5.23.0 - sentencepiece==0.2.0 - pillow==11.1.0 - av==12.1.0 - scipy==1.12.0 - requests==2.31.0 - torchsde==0.2.6 - einops - opencv-contrib-python - safetensors
按上面顺序布置(先 锁 Torch/NumPy,再装其余)基本可以一次过;若仍有疑问,把 pip check
的完整输出贴出来就能迅速定位冲突。祝你构建环境顺利!
引用
PyPI PyPI PyPI GitHub GitHub GitHub PyTorch Stack Overflow GitHub GitHub
PyTorch 2.6.0支持numpy==1.26.2吗
结论先行:
官方 PyTorch 2.6.0 轮子是用 NumPy 2.0.x 预发布版 编译的,ABI 向后兼容 NumPy 1.x。因此只要环境里没有混装旧/新版 NumPy,numpy==1.26.2
可以正常加载并使用 PyTorch 2.6.0(CPU 或各类 CUDA/ROCm/XPU 轮子均同理)GitHub PyTorch。下面给出兼容性依据、安装方法和常见踩坑排查思路。
证据 | 说明 |
---|---|
NumPy 2 ABI 讨论 | 核心开发者在 NumPy 2.0 Support 议题中明确提出:未来版本的 PyTorch 需 用 NumPy 2.0 构建以同时兼容 1.x/2.xGitHub |
2.6.0 RC/GA 发布说明 | 2.6.0 RC 及 GA 轮子已于 2025-01-29 推送,并采用 manylinux 2.28 等新构建基底;官方未再声明“必须 numpy<2”,表明已完成 ABI 过渡PyTorch Developer Mailing List GitHub |
官方文档 FAQ | 2.6 文档里提到 “torch.compile 内部遵循 NumPy 2.0 pre-release”,佐证 2.6 整体以 NumPy 2.0 接口为基准PyTorch |
社区实测 | Issue #146987 中,用户在 torch==2.6.0 + numpy==1.26.4 环境复现错误,最终确认是 环境同时装了 NumPy 1.26 和 2.0 导致冲突;纯 1.26 单版本能够正常运行GitHub GitHub |
历史对比 | 2.4 Windows 轮子仍用 NumPy 1.x 构建,导致遇到 NumPy 2 时报 “NumPy is not available” 的老问题;2.6 之后这一警告在官方轮子中已消失,说明已切换到新 ABIGitHub Stack Overflow |
综上,只要你的环境里唯一存在 NumPy 1.26.2 就能安全加载 torch 2.6.0;若以后想切到 NumPy ≥ 2,也无需重装 PyTorch。
bash# 确保仅有 1.26.2 pip install --force-reinstall "numpy==1.26.2" # 安装 PyTorch 2.6.0(CPU 版) pip install torch==2.6.0 torchvision==0.21.0 --index-url https://download.pytorch.org/whl/cpu
bashpip install --force-reinstall "numpy==1.26.2" pip install torch==2.6.0+cu124 torchvision==0.21.0+cu124 \ --extra-index-url https://download.pytorch.org/whl/cu124
顺序要点:先锁 NumPy→再装 torch;若之后再装其它包(如 diffusers/transformers 等)遇到 resolver 想“升级” torch,可给 torch 加
--no-deps
重装避免连锁升级。
bashpython - <<'PY' import torch, numpy print("Torch:", torch.__version__, "| NumPy:", numpy.__version__) PY
若成功打印版本号且无警告,即兼容。若出现 “Numpy is not available …”,一般是混装了两个 NumPy:
bashpip list | grep numpy # 应只看到 1.26.2 一条
numpy 2.x
→ pip uninstall numpy
并强装 1.26.2conda list numpy
是否隐藏装了另一版本症状 | 可能原因 | 解决办法 |
---|---|---|
TypeError: expected np.ndarray (got numpy.ndarray) | 环境里既有 NumPy 1.26 又有 2.x,ABI 冲突GitHub | 卸掉多余版本,保证单一 NumPy |
RuntimeError: Numpy is not available … (极少见) | 非官方渠道自编译的扩展仍用 NumPy 1.x ABI | 重新编译扩展或统一升级/降级 |
pip 安装时解依赖把 torch 回退到旧版 | 部分第三方包限制 torch<2.6 (如 fastai 尚未更新)GitHub | 先升级那几个依赖或给 pip 加 --upgrade-strategy eager |
torch==2.6.0
↔ numpy==1.26.2