pip安装依赖时覆盖带本地版本标识的PyTorch 1.8.1+cu111如何解决?
PyTorch带本地版本标识版本被pip覆盖的解决方案
出现该现象的核心原因是pip的依赖解析逻辑会优先选择无本地版本标识的官方发布包,哪怕你已安装的带+cu111本地标识的1.8.1版本已经满足>=1.8.1的版本要求,pip仍会认为无本地标识的更高版本是更优匹配,因此触发自动覆盖升级。
你可以通过以下几种方法解决该问题:
- 安装第三方库时追加
--no-upgrade torch参数,强制pip保留当前已安装的torch版本,只要现有版本符合依赖要求就不会触发升级,执行命令示例:
pip install <你的第三方库名称> --no-upgrade torch
如果是在Dockerfile中写入,格式如下:
RUN pip install <你的第三方库名称> --no-upgrade torch
- 安装时显式指定torch版本约束,同时安装依赖和固定版本的torch,pip会自动匹配已安装的符合版本要求的包,不会主动升级:
pip install <你的第三方库名称> "torch==1.8.1+cu111"
该方法稳定性更高,可避免后续其他依赖安装时再次触发torch升级,也可直接写入Dockerfile使用。
- 如果你使用requirements.txt管理依赖,只需在文件最开头写入torch的固定版本,再罗列其他依赖即可:
torch==1.8.1+cu111 # 其他依赖依次往下写 xxx>=x.x.x
- 可尝试升级pip到21.0及以上版本,新版本对本地版本标识规范的支持更完善,能减少这类误升级问题:
pip install --upgrade pip
内容的提问来源于stack exchange,提问作者BIOStheZerg
相关产品推荐
相关产品推荐

