商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何让 PyTorch(CUDA 版)被 pip 正确缓存以加速多环境安装

如何让 PyTorch(CUDA 版)被 pip 正确缓存以加速多环境安装

  发布于2026-07-15 阅读(0)

扫一扫,手机访问

pip 24.0+ 默认启用并正确支持带 --index-url 的 pytorch cuda 轮子(wheel)缓存,升级 pip 即可解决重复下载问题,无需额外配置。

在多虚拟环境开发中,如果你经常需要安装 torch 加上 CUDA 支持(比如指定 --index-url https://download.pytorch.org/whl/cu121),大概率会遇到一个让人头疼的场景:每次新建一个 venv,都得眼睁睁看着那个 2.5 GB 的 wheel 文件重新下载一遍。尽管 pip 官方文档明确写明了“默认启用缓存”,但 torch 就是死活不出现在 pip cache infopip cache list 里。

问题出在哪里?其实根子就在 pip 自身的版本兼容性上。

在 pip ≤ 23.x 的版本中,当使用了 --index-url(尤其是那些指向非 PyPI 默认源的显式索引地址)时,部分版本的缓存逻辑存在一个缺陷——pip 没能把远程 wheel 的哈希值与缓存键正确关联起来。结果就是,要么下载后没写进缓存,要么后续安装时压根找不到缓存里的文件。这个问题,在 pip 24.0 及更高版本中已经修复(相关 issue 可以参考 pip#12396)。

所以,解决方案说来倒也简单直白:把 pip 升级到 24.0+

python -m pip install --upgrade pip

升级完成后,顺手验证一下版本:

pip --version  # 应输出类似:pip 24.0.1 from ...

接下来,标准的安装命令完全不用改,照常执行就行:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

第一次安装时,pip 会正常下载并自动缓存到本地(路径可以通过 pip cache dir 查看,通常是 ~/.cache/pip)。之后你在其他 venv 里执行同样的命令,pip 就会直接从缓存中复制 wheel,跳过网络下载——耗时直接从分钟级降到秒级。

怎么确认缓存真的生效了?

# 查看缓存目录及大小
pip cache info

# 列出已缓存的包(应包含 torch-*.whl)
pip cache list | grep torch

# 清理的话,调试时可以用
# pip cache purge

最后提醒几个容易踩的坑:

  • 别再去设置 PIP_DOWNLOAD_CACHE(已经弃用)或者 PIP_FIND_LINKS(会干扰依赖解析),现代 pip 根本不需要这些变量。
  • --index-url 本身不会禁用缓存,问题只出在旧版 pip 的实现缺陷上。
  • 如果用了 --no-cache-dir,或者在 CI 环境里显式禁用了缓存,记得把那个标志去掉。
  • 不同 CUDA 版本(比如 cu118、cu121、cu124)对应的 wheel 各自独立缓存,互不冲突,不用担心混用。

升级 pip 可以说是最轻量、最可靠,也是最符合官方推荐的做法。搞定这一步之后,不管你创建多少个 Python 3.10 的虚拟环境,PyTorch CUDA 版本都只需要下载一次——本地开发和 CI 构建的效率一下子就提上来了。

本文转载于:https://www.php.cn/faq/2825455.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注