如何在pipenv中指定pytorch/cuda版本
How to specify pytorch / cuda version in pipenv
我正在尝试安装与 pipenv 的特定 cuda 驱动程序版本兼容的特定版本的 pytorch。 pytorch website 展示了如何使用 pip:
pip3 install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html
我试图将其转换为我的 Pipfile
中的条目,如下所示:
[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/torch_stable.html"
verify_ssl = false
pytorch = {version="==1.3.1+cu92", index="pytorch"}
torchvision = {version="==0.4.2+cu92", index="pytorch"}
但是,这不起作用。无法解决与此版本的依赖关系。我不确定 pip3
命令中与 -f
参数一起列出的 url 是否甚至是 pipenv
的有效来源。
我可以像这样将命令传递给 pip 来安装这两个库:
pipenv run pip install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html
但我对该解决方案并不满意,因为依赖项不在 Pipfile
中,我必须手动记录此命令的用法。
上述方法的问题在于https://download.pytorch.org/whl/torch_stable.html
的结构。 Pipenv 只能找到 0.1 到 0.4.1 的火炬版本,因为所有其他版本都以 cuda(或 cpu)版本作为前缀,例如cu92/torch-0.4.1-cp27-cp27m-linux_x86_64.whl
.
但是cuda版本是子目录。因此,如果您将源的 url 更改为 cuda 版本,并且仅在依赖项中指定 torch 版本,它就可以工作。
[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu92"
verify_ssl = false
[packages]
torch = {index = "pytorch",version = "==1.4.0"}
我遇到的唯一问题是numpy不被识别为pytoch 1.4.0的依赖项。但这似乎是特定pytorch wheel的问题。使用版本 1.3.1 或 1.5.1 和最近的 pipenv 版本它可以工作。
所以如果用pipenv install
安装后,命令pipenv run python -c "import torch"
报错,必须手动添加numpy。
我现在刚刚运行关注这个问题。选择 Torch 网站告诉您使用的 URL 并执行此操作:
pipenv install torch --index https://download.pytorch.org/whl/cu113
当然,把https://download.pytorch.org/whl/cu113
换成火炬给你指示的URL。这会正确更新 Pipfile 并在我的系统中运行。安装了 pytorch 并启用了正确的 CUDA 支持。
已解决:这是在 Pipenv 中正确安装 Torch 的方法。即使在我从其他人那里看到的各种“解决方案”中,大多数人都做错了......我已经研究了这个问题的根源并找到了每个人都应该使用的真正的,预期的解决方案。
这项技术是正确的,它记录在 pipenv 存储库中:
https://github.com/pypa/pipenv/issues/4961#issuecomment-1045679643
我正在尝试安装与 pipenv 的特定 cuda 驱动程序版本兼容的特定版本的 pytorch。 pytorch website 展示了如何使用 pip:
pip3 install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html
我试图将其转换为我的 Pipfile
中的条目,如下所示:
[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/torch_stable.html"
verify_ssl = false
pytorch = {version="==1.3.1+cu92", index="pytorch"}
torchvision = {version="==0.4.2+cu92", index="pytorch"}
但是,这不起作用。无法解决与此版本的依赖关系。我不确定 pip3
命令中与 -f
参数一起列出的 url 是否甚至是 pipenv
的有效来源。
我可以像这样将命令传递给 pip 来安装这两个库:
pipenv run pip install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html
但我对该解决方案并不满意,因为依赖项不在 Pipfile
中,我必须手动记录此命令的用法。
上述方法的问题在于https://download.pytorch.org/whl/torch_stable.html
的结构。 Pipenv 只能找到 0.1 到 0.4.1 的火炬版本,因为所有其他版本都以 cuda(或 cpu)版本作为前缀,例如cu92/torch-0.4.1-cp27-cp27m-linux_x86_64.whl
.
但是cuda版本是子目录。因此,如果您将源的 url 更改为 cuda 版本,并且仅在依赖项中指定 torch 版本,它就可以工作。
[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu92"
verify_ssl = false
[packages]
torch = {index = "pytorch",version = "==1.4.0"}
我遇到的唯一问题是numpy不被识别为pytoch 1.4.0的依赖项。但这似乎是特定pytorch wheel的问题。使用版本 1.3.1 或 1.5.1 和最近的 pipenv 版本它可以工作。
所以如果用pipenv install
安装后,命令pipenv run python -c "import torch"
报错,必须手动添加numpy。
我现在刚刚运行关注这个问题。选择 Torch 网站告诉您使用的 URL 并执行此操作:
pipenv install torch --index https://download.pytorch.org/whl/cu113
当然,把https://download.pytorch.org/whl/cu113
换成火炬给你指示的URL。这会正确更新 Pipfile 并在我的系统中运行。安装了 pytorch 并启用了正确的 CUDA 支持。
已解决:这是在 Pipenv 中正确安装 Torch 的方法。即使在我从其他人那里看到的各种“解决方案”中,大多数人都做错了......我已经研究了这个问题的根源并找到了每个人都应该使用的真正的,预期的解决方案。
这项技术是正确的,它记录在 pipenv 存储库中:
https://github.com/pypa/pipenv/issues/4961#issuecomment-1045679643