如何解决PyTorch下载未保存到Pipfile或Piplock
我目前正在使用pipenv维护特定项目中使用的Python软件包。到目前为止,我尝试过的大多数下载均按预期进行;也就是说,我输入“ pipenv install [package]”,它将包安装到虚拟环境中,然后将包信息记录到pipfile和piplock中。但是,我在安装PyTorch时遇到了一些问题。
我曾尝试运行“ pipenv install火炬”,但是每次锁定步骤失败时。相反,我尝试直接从PyTorch网站强制下载:“ pipenv run pip install torch === 1.6.0 torchvision === 0.7.0 -f https://download.pytorch.org/whl/torch_stable.html”
它实际上已安装!如果我运行“ pipenv graph”,它将显示割炬和割炬视觉及其相关性。但是仍然存在一个问题:火炬和火炬视觉都没有保存到pip文件中。关于如何实现这一目标的任何想法吗?
解决方法
当您使用 pipenv run pip install <package>
时,会跳过更新 Pipfile 和 Pipfile.lock 的自定义 pipenv
操作。它基本上相当于做一个普通的 pip install <package>
,就好像你没有/使用 pipenv
一样。
更新 Pipfile 的唯一方法是使用 pipenv install
。
不幸的是,当我发布此内容时,pipenv
does not have an equivalent for pip
's -f/--find-links
option。一种解决方法是手动找到您需要的正确火炬轮 (.whl
) 链接,对于 pytorch,这通常意味着从 https://download.pytorch.org/whl/torch_stable.html 中寻找正确的链接(我将展示如何在下面做这个)。
然后,使用 specific package versions 和指向轮子的 URL 创建/修改 Pipfile:
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[requires]
python_version = "3.8"
[packages]
torch = {version = "==1.6.0",file = "https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl"}
torchvision = {version = "==0.7.0",file = "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"}
然后就做普通的pipenv install
。
您可以使用 pipenv install --verbose
确认安装:
Collecting torch==1.6.0
...
Looking up "https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl" in the cache
Current age based on date: 8
Starting new HTTPS connection (1): download.pytorch.org:443
https://download.pytorch.org:443 "GET /whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl HTTP/1.1" 304 0
...
Added torch==1.6.0 from https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl#egg=torch
...
Successfully installed torch-1.6.0
Collecting torchvision==0.7.0
...
Looking up "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl" in the cache
Current age based on date: 8
Starting new HTTPS connection (1): download.pytorch.org:443
https://download.pytorch.org:443 "GET /whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl HTTP/1.1" 304 0
...
Added torchvision==0.7.0 from https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl#egg=torchvision
...
Successfully installed torchvision-0.7.0
这也会向 Pipfile.lock 添加条目:
"torch": {
"file": "https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl","hashes": [
...
],"index": "pypi","version": "==1.6.0"
},"torchvision": {
"file": "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl","version": "==0.7.0"
}
这样,您现在就有了一个 Pipfile 和 Pipfile.lock,您可以在开发应用程序时签入/提交到版本控制和跟踪/管理。
除了手动编辑 Pipfile,您还可以从命令行进行:
(temp) $ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
Installing https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl...
...
Adding torchvision to Pipfile's [packages]...
✔ Installation Succeeded
这还应该在 Pipfile 中添加一个条目:
[packages]
...
torchvision = {file = "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"}
当然,这一切都取决于找出您真正需要哪个轮子。这可以通过首先使用带有 pip install <package>
/-f
选项的普通 --find-links
来定位 https://download.pytorch.org/whl/torch_stable.html URL,然后检查它使用了哪个轮子。
- 首先,让我们使用
.whl
获取正确的pip install
文件$ pipenv run pip install --verbose torchvision==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html Looking in links: https://download.pytorch.org/whl/torch_stable.html ... Collecting torchvision==0.7.0 Downloading torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl (387 kB) ...
- 从虚拟环境中移除
pip install
相关的东西$ pipenv clean
- 重复安装但使用
pipenv install
$ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
- 只需将“https://download.pytorch.org/whl/”+第 1 步中的
.whl
文件名组合起来
- 只需将“https://download.pytorch.org/whl/”+第 1 步中的
首先使用 pip install
然后将其复制到 pipenv
似乎有点倒退,但这里的目标是让 pipenv
更新 Pipfile 和 Pipfile.lock(以支持确定性builds) 并“记录”您的 env 以进行版本控制。
您可以通过将 PyTorch 源添加到您的 pip 文件中来安装它,如下所示:
[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/torch_stable.html"
verify_ssl = false
[packages]
torch = {index = "pytorch",version = "==1.9.0"}
torchvision = {index ="pytorch",version= "==0.10.0"}
torchaudio = {index ="pytorch",version= "==0.9.0"}
[requires]
python_version = "3.7"
然后运行 pipenv install
注意:索引是指源名称。
你可以在任何类似的情况下做到这一点: 例如:安装pytorch-geometric:
[[source]]
name = "pytorch-geometric"
url = "https://pytorch-geometric.com/whl/torch-1.9.0+cu111.html"
verify_ssl = false
[packages]
torch-scatter = {index= "pytorch-geometric",version= "==2.0.7"}
torch-sparse = {index= "pytorch-geometric",version= "==0.6.10"}
torch-cluster = {index= "pytorch-geometric",version= "==1.5.9"}
torch-geometric = {index= "pytorch-geometric",version= "==1.3.2"}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。