为什么pip无法安装cudatoolkit=10.1,但使用conda可以正常安装?
问题原因
cudatoolkit是NVIDIA官方推出的CUDA工具包,并未被官方发布到PyPI软件源,因此pip无法从默认源中检索到对应的安装包,会直接报找不到匹配版本的错误。而conda官方维护的源(defaults、conda-forge等)收录了预编译的cudatoolkit安装包,因此可以正常通过conda命令完成安装。
解决办法
针对需要将依赖写入配置文件的需求,可选择以下任意方案处理:
- 方案1:使用适配CUDA版本的框架PyPI包
如果你安装cudatoolkit是为了配合PyTorch、TensorFlow等深度学习框架使用,无需单独安装cudatoolkit,这类框架的PyPI版本已经内置了对应版本的CUDA运行时依赖。以适配CUDA10.1的PyTorch为例,直接执行如下命令即可完成安装:
直接将上述命令对应的包名和版本写入requirements.txt即可。pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html - 方案2:提前安装后在requirements.txt中标记忽略
先通过conda完成cudatoolkit 10.1的安装,之后在requirements.txt中添加注释说明该依赖需要提前用conda安装,无需通过pip安装,参考格式如下:# 前置依赖需手动通过conda安装:conda install cudatoolkit=10.1 # cudatoolkit==10.1 torch==1.8.1 torchvision==0.9.1 - 方案3:使用conda的environment.yml替代requirements.txt
若可切换到conda进行全环境依赖管理,可编写environment.yml文件同时管理conda和pip两类依赖,示例格式如下:
部署时执行name: your_project_env channels: - defaults dependencies: - cudatoolkit=10.1 - python=3.8 - pip: - torch==1.8.1 - torchvision==0.9.1conda env create -f environment.yml即可一次性完成全部环境配置。
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

