1

当我尝试使用 pipenv 安装软件包时,进度条不显示。这对我来说非常重要,因为我的数据连接有限,我需要提前知道我正在下载的包的大小。这是我在 pipenv 中得到的一个例子

pipenv install spacy
Installing spacy...
[   =] Installing spacy...  

这是我在使用普通 pip 安装软件包时得到的

pip install spacy
Collecting spacy
  Downloading spacy-3.0.1-cp39-cp39-win_amd64.whl (11.4 MB)
     |████████████                    | 4.3 MB 2.2 MB/s eta 0:00:04

有没有办法用 pipenv 显示进度条?教程之类的其他所有人都可以显示进度条而无需额外的代码。可能是在新版本中它不是显示进度条的默认设置?

我确实有某种方法可以告诉包的大小,我只是执行pip install,检查大小,然后立即中止,以便我可以进行pipenv 安装

4

1 回答 1

1

pipenv 目前无法显示与 pip 相同的下载进度条。早在 2018 年 7 月,这里就曾请求过:pipenv 下载 package 时无法显示进度条,并且该功能请求仍处于打开状态。

我的意思是,有时当我们想安装像 pytorch 这样的大 pypi 包时(pytorch 的 .whl 包大小为 400+Mb),而一个人的互联网速度很慢(比如 400Kb/s)。在这种情况下,我们需要等待大约 17 分钟才能完成下载。在此期间,用户无法向 pipenv 添加选项以显示包下载速度或完成率。

我想要的是 wget 和 pip 的进度条功能。

欢迎请求请求,我同意这将是一个很棒的功能

所以,遗憾的是,现在没有办法拥有与 pip 选项相同的功能,pip或者至少没有办法模拟 pip 的--progress-bar选项。随意碰撞该线程并订阅该问题以获取更新,以防它被实施。

教程之类的其他所有人都可以显示进度条而无需额外的代码。可能是在新版本中它不是显示进度条的默认设置?

我认为您混淆了 pip 的下载进度条和 pipenv 的微调器安装进度条:

$ pipenv install pytest
Installing pytest... 
⠏ Installing pytest...
...
Updated Pipfile.lock (34070a)!
Installing dependencies from Pipfile.lock (34070a)...
     ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 1/1 —

pipenv install除了安装包之外,还可以做许多其他事情,例如生成锁定文件、更新 Pipfile 和维护虚拟环境。微调器( )将⠏ Installing pytest...所有这些操作都考虑在内,通常需要一段时间才能完成。最后的安装栏只是指示“将文件从临时目录移动到您的虚拟环境”之类的内容,并且不提供任何信息下载大小和时间。尽管它们都不能解决您的问题。

这对我来说非常重要,因为我的数据连接有限,我需要提前知道我正在下载的包的大小。

如果您从PyPi安装包(默认情况下),解决方法是首先转到包的 PyPi 页面的“下载文件”部分,并检查下载文件的大小。这是 spacy 的一个:https ://pypi.org/project/spacy/#files 。

pip install实际上首先要做的是下载这些相同的文件。例如,文件大小spacy-3.0.1-*.whl约为 11~12Mb,这与您获得的“ spacy-3.0.1-cp39-cp39-win_amd64.whl (11.4 MB)”相匹配。

另一种解决方法是GET向该包的 JSON API 发出请求:https://pypi.org/pypi/spacy/json,然后查找releases> <version>> size

$ curl https://pypi.org/pypi/spacy/json > spacy.json
$ python3
>>> import json
>>> with open('spacy.json') as f:
...   data = json.load(f)
... 
>>> sizes = [v['size'] for v in data['releases']['3.0.1']]
>>> sizes
[12444769, 12750738, 11605145, 12283655, 12727469, 11606585, 12370380, 12851086, 11760155, 12176093, 12500325, 11395223, 7016311

这将为您提供相同的 11~12Mb 估计值。(我没有在脚本上花很多心思,所以它需要做很多工作才能把它变成一个可重用的实用程序之类的pip-check-size <package>东西。它还需要你事先知道版本)。

这两种解决方法可能比您现在已经在做的更麻烦:

我只是进行 pip 安装,检查大小,然后立即中止,以便我可以进行 pipenv 安装

于 2021-02-08T10:29:35.777 回答