首页 > 解决方案 > Python pip:强制进度条

问题描述

使用 pip 下载 Python 包时,默认显示进度条。使用--progress-bar我可以选择不同的样式或完全关闭进度条。如果我通过管道输出 pip 命令的输出,则会自动禁用此进度条。例如

python3 -m pip download --no-cache-dir scipy==1.1.0            # Progress bar
python3 -m pip download --no-cache-dir scipy==1.1.0 | tee log  # No progress bar

(如果您依次运行这两个命令,请记住删除其间下载的文件)。我确信 pip 会禁用进度条,因为它检测到输出不会发送到 TTY。我寻求一种方法来忽略 pip 的这种聪明,并强制它写出进度条。天真的猜测是提供--progress-bar论点,例如

python3 -m pip download --no-cache-dir --progress-bar=on scipy==1.1.0 | tee log

但是,非 TTY 禁用进度条会否决这一点。

注意: 存在类似的故事wget。在这里,可以强制使用进度条

wget --progress=bar:force ...

标签: pythonpython-3.xpippipetty

解决方案


推荐阅读