带extra-index-url的pip命令转requirements.txt的正确性及后续问题咨询
问题解答
1. 当前requirements.txt写法的正确性
你现在把-i https://download.pytorch.org/whl/cu116直接加到requirements末尾的写法不准确,原因是:
- 原命令里的
--extra-index-url是「额外添加一个包索引源」,而-i是「替换默认的PyPI源」,两者功能完全不同。 - 如果用
-i,pip会优先从PyTorch的这个源下载所有包,但该源只包含PyTorch相关的whl包,其他包会触发pip自动 fallback到默认源,虽然不会报错,但会多一次无效查询。
正确的写法有两种:
方式一:全局添加额外索引
在requirements.txt开头或合适位置添加:
--extra-index-url https://download.pytorch.org/whl/cu116
然后再写包名:
torch torchvision torchaudio
这样pip会先从默认PyPI源找包,找不到再去这个额外源,对PyTorch相关包会自动匹配cu116版本的whl。
方式二:给特定包绑定索引(更精准)
把PyTorch相关包和索引绑定,这样只有这几个包会用这个源,其他包不受影响:
torch --extra-index-url https://download.pytorch.org/whl/cu116 torchvision --extra-index-url https://download.pytorch.org/whl/cu116 torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
2. 添加NumPy等其他包的影响
- 如果用方式一(全局额外索引):添加NumPy后,pip会先从默认PyPI源查找下载,只有当默认源找不到NumPy时才会去PyTorch的源查询(显然不会发生),所以完全不影响,不需要「清除」这个URL。
- 如果用方式二(包绑定索引):其他包只会使用默认PyPI源,和这个额外索引完全无关,更不用担心影响。
- 如果是你原来错误的
-i写法:虽然也能正常下载NumPy,但pip会先去PyTorch源查一遍,再 fallback到默认源,多了一次无效请求,效率略低,但不会导致安装失败。
内容的提问来源于stack exchange,提问作者sharkyenergy
相关产品推荐
相关产品推荐

