繁体   English   中英

如何将 pip install 转换为 Poetry 文件?

[英]How to convert pip install to Poetry file?

经过数小时的研究,我仍然无法找到将这个 pip install cmd 转换为 pyproject.toml 文件的方法。 我正在尝试安装 PyTorch。

pip install torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

这就是我目前得到的(完全错误!)

[tool.poetry]
name = "poetry-test"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]

[tool.poetry.dependencies]
python = "^3.8"
torch = "^1.7.0"
torchvision = "^0.8.1"
torchaudio = "^0.7.0"

[tool.poetry.dependencies.torch]
url = "https://download.pytorch.org/whl/torch_stable.html"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

如果您在依赖项定义中使用 url 说明符,则它需要直接指向您要安装的文件,而不是 .html 页面:

[tool.poetry.dependencies]
python = "^3.8"
torch = {url = "https://download.pytorch.org/whl/cpu/torch-1.7.0%2Bcpu-cp38-cp38-win_amd64.whl"}
torchaudio = {url = "https://download.pytorch.org/whl/torchaudio-0.7.0-cp38-none-win_amd64.whl"}
torchvision = {url = "https://download.pytorch.org/whl/cpu/torchvision-0.8.1%2Bcpu-cp38-cp38-win_amd64.whl"}

话虽如此,您的设置现在无法与poetry一起安装,因为您将遇到求解器错误:

[SolverProblemError]
Because torchaudio (0.7.0) depends on torch (1.7.0) which doesn't match any versions, torchaudio is forbidden.
So, because no versions of torchaudio match !=0.7.0
 and poetry-test depends on torchaudio (*), version solving failed.

虽然torch可以单独安装,但在安装torchaudiotorchvision时匹配版本时会出现问题。 也许这与 Torch 在您尝试安装的轮子中的版本中包含构建信息有关(即1.7.0+cpu ),也许是因为无法在pyproject.toml (这是有道理的,如果我们告诉它“这是一个 tarball,安装它!”,诗歌不会解决任何问题),或者可能只是一个内部poetry错误。

您现在可能必须坚持使用pip ,因为它不会抱怨解决依赖树而只是开始安装。 但最终,要怪torch维护者,因为 1) 没有将他们所有的轮子上传到全局 Python 包 index ,以及 2) 甚至没有以符合PEP-503 的方式设置自己的文件服务器。


更新:

我对讨论进行了更多的研究,似乎有一个乐于助人的人完成了torch在符合 PEP-503 标准的服务器上为他们的轮子提供服务的工作。 因此,目前,以下实际上将起作用:

[tool.poetry]
name = "poetry-test"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]

[[tool.poetry.source]]
name = "foo"
url = "https://vxlabs.com/pypi//simple/"

[tool.poetry.dependencies]
python = "^3.8"
torch = "1.7.0"
torchvision = "0.8.1"
torchaudio = "0.7.0"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

如本诗刊#2543 中所述,以前的解决方案对我不起作用。 因此,在此期间对我有用的是升级到解决该问题的 1.2 版(预览版)。

安装诗歌 1.2

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python - --preview

按照此处的建议将以下 repo 添加到您的 pyproject.toml问题#4124 ,您不应该出现版本不匹配的情况。

[[tool.poetry.source]]
name = "torch_rep"
url = "https://eternalphane.github.io/pytorch-pypi"

之后,您可以继续安装它们poetry add torch =1.7.0+cpu poetry add torchvision=0.8.1+cpu

或者,将依赖项添加到 pyproject.toml 并进行poetry install也应该有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM