安装CodeGen出现torch==1.9.0+cu111无匹配分发版本报错
问题根因
两个报错是三个问题叠加导致的:
pip找不到对应版本torch:带+cu111后缀的CUDA版PyTorch不托管在PyPI官方源,执行安装时如果网络无法正常访问PyTorch的whl索引地址,或是pip版本过低无法正确解析--find-links参数,就只能拉取到官方源里不带CUDA后缀的普通torch版本,匹配不上要求的版本号。conda解析requirements失败:--find-links是pip专属的配置参数,conda无法识别该语法,直接读取带该参数的requirements文件必然报解析错误。- requirements文件本身存在笔误:最后一行
transformers==4.16.2末尾多打了一个%符号,哪怕前面的torch装完,这行也会报版本匹配失败的错误。
解决步骤(推荐用pip虚拟环境安装,和原项目依赖适配性最好)
- 先修正requirements.txt文件内容
删掉transformers版本号后的多余%,修正后的文件内容为:
--find-links https://download.pytorch.org/whl/torch_stable.html torch==1.9.0+cu111 transformers==4.16.2
前置检查:确认本地显卡驱动版本支持CUDA11.1,Linux系统驱动版本≥455.23、Windows系统驱动版本≥456.38才可正常使用cu111版本的torch。如果驱动版本不满足,要么升级显卡驱动,要么把torch版本替换为和你本地CUDA版本匹配的1.9.x对应版本。
- 单独安装指定版本的torch
不要直接执行全量依赖安装,先单独装torch避免解析冲突:
pip3 install torch==1.9.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
如果该命令执行超时、还是找不到包,就手动下载对应python版本、系统版本的torch1.9.0+cu111的whl安装包到本地,再执行pip3 install 本地whl文件的完整路径完成安装。
- 验证torch安装有效性
安装完成后执行验证命令:
python3 -c "import torch; print(torch.__version__, torch.cuda.is_available())"
输出结果显示版本为1.9.0+cu111且torch.cuda.is_available()返回True,说明torch安装正确。
- 安装剩余依赖
把requirements.txt里的torch==1.9.0+cu111这一行行首加#注释掉,再执行全量依赖安装命令即可:
pip3 install -r requirements.txt
如果你习惯用conda管理环境
按以下步骤操作即可,不要直接用conda读取原始requirements.txt:
- 创建适配的虚拟环境,torch1.9最高支持python3.9,不要用3.10及以上版本:
conda create -n codegen python=3.8 -y conda activate codegen
- 用conda安装对应版本的torch和cuda工具包:
conda install pytorch==1.9.0 cudatoolkit=11.1 -c pytorch -y
- 验证torch安装正常后,用pip安装剩余的python依赖:
pip3 install transformers==4.16.2
如果requirements里还有其他依赖,把文件里的--find-links行和torch行删掉之后,再执行pip3 install -r requirements.txt即可。
内容的提问来源于stack exchange,提问作者Exploring
相关产品推荐
相关产品推荐

