微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

安装包时pipenv不显示进度条

如何解决安装包时pipenv不显示进度条

当我尝试使用 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显示进度条? tutorials 之类的其他人都可以在没有额外代码的情况下显示进度条。可能是在新版本中它不是显示进度条的认设置?

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

解决方法

pipenv 目前无法显示与 pip 相同的下载进度条。早在 2018 年 7 月,这里就有人请求过:pipenv couldn't display progress bar when it downloads package,并且该功能请求仍然开放。

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

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

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

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

tutorials 之类的其他人都可以在没有额外代码的情况下显示进度条。可能是在新版本中它不是显示进度条的默认设置?

我认为你混淆了pip的下载进度条和pipenv的spinner安装进度条:

$ 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)”获得的大小相符。

另一种解决方法是向该包的 JSON API 发出 GET 请求: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 安装

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。