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 安装