Python3.8 CPU环境安装指定版本PyTorch相关依赖遭遇版本冲突求助
Python3.8 CPU环境安装指定版本PyTorch相关依赖遭遇版本冲突求助
我一眼就看出问题出在哪了——你指定的PyTorch系列组件版本里,torchaudio==0.10.0要求的是标准的torch==1.10.0,但torchvision==0.11.0明确依赖带+cpu后缀的torch==1.10.0+cpu,pip会把这两个当成不同的版本,自然就触发冲突了。结合你用的是Python3.8纯CPU环境,给你几个实用的解决办法:
方案一:统一PyTorch系列的CPU版本标识
直接修改你的requirements.txt,把torchaudio也改成对应CPU版本,让三个PyTorch组件依赖同一个版本:
torch==1.10.0+cpu torchaudio==0.10.0+cpu torchvision==0.11.0+cpu pyannote-audio==0.0.1 lightning==2.3.3 numpy scipy pandas soundfile matplotlib
这样所有组件的版本标识完全一致,pip就能顺利解析依赖了。
方案二:放宽PyTorch版本约束,让pip自动匹配
如果不是必须卡死1.10.x版本,可以把PyTorch相关的版本号删掉,让pip自动为你的CPU环境挑选兼容的版本组合:
torch torchaudio torchvision pyannote-audio==0.0.1 lightning==2.3.3 numpy scipy pandas soundfile matplotlib
不过要注意,这样可能会安装比1.10.x更新的版本,要是你的项目必须依赖旧版本特性,这个方案就不太适合。
方案三:手动分步安装,强制兼容
要是必须保留指定版本,那就手动控制安装顺序,先搞定torch的CPU版本,再装其他组件:
# 先安装指定的CPU版torch,强制覆盖可能存在的冲突版本 pip install torch==1.10.0+cpu --force-reinstall # 安装torchaudio和torchvision,跳过依赖检查(因为已经手动装了兼容的torch) pip install torchaudio==0.10.0 torchvision==0.11.0 --no-deps # 最后安装剩下的其他依赖 pip install pyannote-audio==0.0.1 lightning==2.3.3 numpy scipy pandas soundfile matplotlib
这个方法需要手动操作,但能严格保留你要的版本,不过后续要留意有没有隐性的兼容问题。
另外提个小提醒:lightning==2.3.3是比较新的版本,它和PyTorch1.10.x可能存在兼容性问题,如果上面的方案都不行,不妨试试把lightning降级到和PyTorch1.10.x兼容的版本(比如lightning==1.5.10这类),毕竟新版本的PyTorch Lightning通常会要求更新的PyTorch版本。
备注:内容来源于stack exchange,提问作者oran ben david




