【问题标题】:Cannot install the gpu version of torch and torchvision in poetry due to a dependency problem由于依赖问题,无法在诗歌中安装torch和torchvision的gpu版本
【发布时间】:2021-10-23 19:22:54
【问题描述】:

我正在尝试使用诗歌为机器学习创建一个虚拟环境。所以,我使用 pytorch 作为深度学习的框架。我将提取我的 pyproject.toml 的相关部分。

[tool.poetry.dependencies].
python = "^3.8"
torch = { url = "https://download.pytorch.org/whl/cu111/torch-1.8.0%2Bcu111-cp38-cp38-linux_x86_64.whl"}
torchvision = { url = "https://download.pytorch.org/whl/cu111/torchvision-0.9.0%2Bcu111-cp38-cp38-linux_x86_64.whl" }

由于pytroch使用GPU,需要通过指定whl文件来安装。如果以这种方式安装,pytroch 的版本将是1.8.0+cu111torchvision对应pytorch的1.8.0就是0.9.0。这个torchvision 所依赖的pytroch 版本是1.8.0(没有cu111)。因此,我无法使用诗歌创建虚拟环境,出现以下错误。


  SolverProblemError

  Because torchvision (0.9.0) depends on torch (1.8.0)
   and mdwithpriorenergy depends on torch (1.8.0+cu111), torchvision is forbidden.
  So, because mdwithpriorenergy depends on torchvision (0.9.0), version solving failed.

So, because [env name] depends on torchvision (0.9.0), version solving failed. 

我还对上面pyproject.toml中的torchvision进行了以下更改,但没有奏效。

[tool.poetry.dependencies].
python = "^3.8"
torch = { url = "https://download.pytorch.org/whl/cu111/torch-1.8.0%2Bcu111-cp38-cp38-linux_x86_64.whl"}
- torchvision = { url = "https://download.pytorch.org/whl/cu111/torchvision-0.9.0%2Bcu111-cp38-cp38-linux_x86_64.whl"}
+ torchvision = "*"

在这种情况下,我收到以下错误

  AttributeError

  'EmptyConstraint' object has no attribute 'allows'.

请告诉我如何解决这个错误。

【问题讨论】:

    标签: python pytorch gpu python-poetry


    【解决方案1】:

    据我所知,这在诗歌中尚不支持(没有丑陋的黑客),请参阅Issue 2613

    也就是说,我正在维护一个名为 relaxed-poetry 的分支。这是一个非常年轻的分支,但它通过以下配置支持你想要的:

    [tool.poetry.dependencies]
    python = "^3.8"
    torch = { version = "=1.8.0+cu111", source = "pytorch" }
    torchvision = { version = "=0.9.0+cu111", source = "pytorch" }
    
    [[tool.poetry.source]]
    name = "pytorch"
    url = "https://download.pytorch.org/whl/cu111/"
    secondary = true
    

    如果你觉得它对你有帮助,你可以把它和诗歌并排安装,改用命令rp

    请注意,安装将需要一些时间,因为这是一个很大的依赖项和相对较慢的源..

    【讨论】:

    • 对于所有发现这一点的人,现在诗歌也可以做到这一点,但可能取决于目前正在预览的诗歌版本 1.2.0。
    • @MoritzSauter 你能具体说明它是如何工作的吗?它对我不起作用。
    • 和这里的答案描述的差不多(我认为版本中没有=)。据我所知,这依赖于preview 1.2.0a 版本。由于多个来源等的其他问题,我不得不恢复正常的诗歌,所以我现在无法验证它是否仍然有效。
    • 不适用于我的普通诗歌(master 1.2.0a2),它一直试图从 pytorch.org 获取所有内容,并因“授权错误”github.com/python-poetry/poetry/issues/4885 而失败
    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2021-10-17
    • 2021-05-12
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多