发布于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 info 或 pip 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 环境里显式禁用了缓存,记得把那个标志去掉。升级 pip 可以说是最轻量、最可靠,也是最符合官方推荐的做法。搞定这一步之后,不管你创建多少个 Python 3.10 的虚拟环境,PyTorch CUDA 版本都只需要下载一次——本地开发和 CI 构建的效率一下子就提上来了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8