在使用Poetry安装pytorch的时候,常常会遇到各种问题:首先是使用add添加时,会说只有torch没有什么pytorch,很显然,它是直接针对包的,第二点是,如果是一台没有nvidia显卡的机器,由于poetry没有找到适配的cuda,它会从最高版本开始一遍遍地尝试安装cuda,即使添加了清华镜像也还是慢得可怜,最重要的是,不知道在终点会不会是一个“错误”。因此,在poetry的项目下面也有人针对这个问题展开了讨论,下面是一个比较详尽的使用poetry安装的方式。
Instructions for installing PyTorch #6409
Instructions for installing PyTorch · Issue #6409 · python-poetry/poetry · GitHub
选项一:选择一个你需要的特定版本
你需要选择所需的特定wheel。这个网址https://download.pytorch.org/whl/torch_stable.html里面选。例如,如果您想要CUDA 11.6、Python 3.10和Windows,请在该页面上搜索cu116-cp310-cp310-win_amd64.whl以查看torch、torchhave和torchvision的匹配项。
那么你写的pyproject,toml应该长这样
[tool.poetry.dependencies]
python = "^3.10"
numpy = "^1.23.2"
torch = { url = "https://download.pytorch.org/whl/cu116/torch-1.12.1%2Bcu116-cp310-cp310-win_amd64.whl"}
torchaudio = { url = "https://download.pytorch.org/whl/cu116/torchaudio-0.12.1%2Bcu116-cp310-cp310-win_amd64.whl"}
torchvision = { url = "https://download.pytorch.org/whl/cu116/torchvision-0.13.1%2Bcu116-cp310-cp310-win_amd64.whl"}
但是这种下载方式并不可靠,这位兄弟说下载了很多个GB的文件来试,看来并不合适。
选项二:设置次级源。
代码一看就懂,就不描述了。
[tool.poetry.dependencies]
python = "^3.10"
numpy = "^1.25.2"
torch = { version = "1.12.1", source="torch"}
torchaudio = { version = "0.12.1", source="torch"}
torchvision = { version = "0.13.1", source="torch"}
[[tool.poetry.source]]
name = "torch"
url = "https://download.pytorch.org/whl/cpu/"
priority = "supplemental"
这里实际上设置的是补充源,因为secondary这个优先级已经不使用了。
但是经过我亲身测试,这个工具依然会下载大量的包下来,我也就不敢在自己的电脑上再使用,打断了。或许我会用云平台的电脑测试一下吧。
反转
“结论就是,当前阶段的poetry对管理torch的功能并不好,毕竟它不是发布在pypi上,而是有自己的通道。所以还是老老实实用pip管理环境吧!“ ——2023.8.4
离谱了啊,在平台上尝试成功!
我看不懂,但我大受震撼,我在我本地也来一遍!但是说实话,感觉有些玄学,在云平台上东的时候,它并没有下载些多余的东西出来,搞不明白。
把自己的toml文件在下面贴一下,方便有人想尝试。
[tool.poetry]
name = "work"
version = "0.1.0"
description = ""
authors = ["zhaocake"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.9"
numpy = "^1.25.2"
torch = { version = "1.12.1", source="torch"}
torchaudio = { version = "0.12.1", source="torch"}
torchvision = { version = "0.13.1", source="torch"}
[[tool.poetry.source]]
name = "torch"
url = "https://download.pytorch.org/whl/cpu/"
priority = "supplemental"
[[tool.poetry.source]]
name = "mirrors"
url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
priority = "default"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"