使用poetry安装GPU版torch、torchvision依赖冲突问题求解
问题原因
两个报错的对应原因如下:
- 第一个
SolverProblemError:Poetry默认的版本解析逻辑会将带cuda后缀的版本(如1.8.0+cu111)识别为与官方PyPI上的无后缀版本1.8.0不同的版本,而你直接指定whl安装的torchvision元数据中声明的依赖是torch==1.8.0,无法匹配你安装的带后缀的torch版本,因此版本校验失败。 - 第二个
AttributeError:这是旧版本Poetry的已知bug,当你将依赖版本设置为*且解析器无法找到符合约束的匹配版本时,会触发该空对象报错。
解决方案
按以下步骤操作即可解决:
- 首先升级Poetry到最新版本,避免已知bug:
poetry self update # 若你是通过pip安装的Poetry,执行以下命令 pip install --upgrade poetry
- 修改
pyproject.toml配置,添加PyTorch官方CUDA源,无需手动指定单个whl地址:
# 先添加PyTorch CU111源配置 [[tool.poetry.source]] name = "pytorch_cu111" url = "https://download.pytorch.org/whl/cu111" priority = "explicit" [tool.poetry.dependencies] python = "^3.8" torch = { version = "1.8.0", source = "pytorch_cu111" } torchvision = { version = "0.9.0", source = "pytorch_cu111" }
- 执行安装命令即可完成依赖安装:
poetry install
说明
该方案通过直接对接PyTorch官方的CUDA源,Poetry可以读取源内所有包的完整依赖映射,源内的torchvision包已适配对应CUDA版本的torch,版本解析器可正常完成匹配,不会再出现版本冲突报错。
内容的提问来源于stack exchange,提问作者musako
相关产品推荐
相关产品推荐

