Python 如何使用pipenv安装PyTorch并将其保存到Pipfile和Pipfile.lock?
我目前正在使用Pipenv来维护特定项目中使用的Python包。到目前为止,我尝试的大多数下载都按预期进行了;也就是说,我输入Python 如何使用pipenv安装PyTorch并将其保存到Pipfile和Pipfile.lock?,python,windows,pytorch,pipenv,torchvision,Python,Windows,Pytorch,Pipenv,Torchvision,我目前正在使用Pipenv来维护特定项目中使用的Python包。到目前为止,我尝试的大多数下载都按预期进行了;也就是说,我输入pipenv install[package],它将包安装到虚拟环境中,然后将包信息记录到Pipfile和Pipfile.lock中 $ pipenv clean 然而,我在安装PyTorch时遇到了一些问题 我已经尝试运行了pipenv install torch,但每次锁定步骤都失败了。相反,我尝试直接从PyTorch网站使用 pipenv run pip inst
pipenv install[package]
,它将包安装到虚拟环境中,然后将包信息记录到Pipfile和Pipfile.lock中
$ pipenv clean
然而,我在安装PyTorch时遇到了一些问题
我已经尝试运行了pipenv install torch
,但每次锁定步骤都失败了。相反,我尝试直接从PyTorch网站使用
pipenv run pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
而且它确实安装了!如果我运行pipenv graph
,它会显示torch和torchvision及其依赖项。但仍然存在一个问题:torch和torchvision都没有保存到Pipfile和Pipfile.lock中
您知道如何实现这一点吗?当您使用
pipenv运行pip安装
时,将跳过更新Pipfile和Pipfile.lock的自定义pipenv
操作。它基本上相当于执行普通的pip安装
,就好像您没有/使用pipenv
同时更新PIP文件的唯一方法是使用pipenv install
$ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
不幸的是,当我发布这个。一种解决方法是手动查找所需的正确火炬轮(.whl
)链接,使用pytorch通常意味着从中查找正确的链接(我将在下面展示如何执行此操作的技巧)
然后,使用和控制盘的URL创建/修改PIP文件:
[[source]]
name=“pypi”
url=”https://pypi.org/simple"
验证\u ssl=true
[需要]
python_version=“3.8”
[套餐]
torch={version=“==1.6.0”,文件=“https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl"}
torchvision={version=“==0.7.0”,文件=“https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"}
然后只需执行正常的pipenv安装
$ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
您可以使用pipenv安装--verbose来确认安装:
收集火炬==1.6.0
...
“抬头看”https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl“在缓存中
基于日期的当前年龄:8
开始新的HTTPS连接(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
...
新增火炬==1.6.0https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl#egg=torch
...
已成功安装torch-1.6.0
收集火炬视觉==0.7.0
...
“抬头看”https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl“在缓存中
基于日期的当前年龄:8
开始新的HTTPS连接(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
...
添加的torchvision==0.7.0https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl#egg=torchvision
...
成功安装torchvision-0.7.0
这还会将条目添加到Pipfile.lock:
“火炬”:{
“文件”:”https://download.pytorch.org/whl/cpu/torch-1.6.0-cp38-none-macosx_10_9_x86_64.whl",
“散列”:[
...
],
“索引”:“pypi”,
“版本”:“==1.6.0”
},
“火炬视觉”:{
“文件”:”https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl",
“散列”:[
...
],
“索引”:“pypi”,
“版本”:“==0.7.0”
}
有了它,您现在有了一个Pipfile和Pipfile.lock,您可以在开发应用程序时签入/提交到版本控制并跟踪/管理它
您也可以从命令行执行此操作,而不是手动编辑PIP文件:
(临时)$pipenv安装--详细”https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
安装https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl...
...
正在将torchvision添加到Pipfile的[packages]。。。
✔ 安装成功
还应向PIP文件添加一个条目:
[软件包]
...
torchvision={file=”https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"}
当然,这一切都取决于你到底需要哪个轮子。这可以通过首先使用普通的pip安装
和-f
/-查找指向URL的链接
选项来完成,然后检查它使用了哪个控制盘
pip安装
$ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
$pipenv运行pip安装--verbose torchvision==0.7.0-fhttps://download.pytorch.org/whl/torch_stable.html
查看链接:https://download.pytorch.org/whl/torch_stable.html
...
收集火炬视觉==0.7.0
下载torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl(387KB)
...
pip安装
-ed内容
$ pipenv clean
$ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
pipenv安装
$ 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
首先使用
pip install
然后将其复制到pipenv
,这似乎有点倒退,但这里的目标是让pipenv
更新Pipfile和Pipfile.lock(以支持确定性构建)并“记录”您的环境以进行版本控制。当使用pipenv运行pip install
时,这将跳过更新Pipfile和Pipfile.lock的自定义pipenv
操作。它基本上相当于执行普通的pip安装
,就好像您没有/使用pipenv
$ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
同时更新PIP文件的唯一方法是使用pipenv install
$ pipenv install --verbose "https://download.pytorch.org/whl/torchvision-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl"
不幸的