如何为pyenv管理的全部虚拟环境手动升级pip?
批量升级所有pyenv虚拟环境pip的方法
你可以直接通过遍历pyenv虚拟环境目录的shell命令实现该需求,不需要额外安装第三方工具。
方法1:临时执行单条命令
直接在终端运行如下命令即可完成所有虚拟环境的pip升级:
for venv_python in ~/.pyenv/versions/*/bin/python; do $venv_python -m pip install --upgrade pip; done
方法2:封装为可复用脚本
如果需要频繁执行该操作,可以把命令封装为系统可调用的脚本:
- 新建脚本文件
~/.local/bin/pyenv-upgrade-all-pip,写入如下内容:
#!/bin/bash # 升级所有pyenv虚拟环境的pip版本 for venv_python in ~/.pyenv/versions/*/bin/python do echo "正在升级虚拟环境:${venv_python%/bin/python}的pip" $venv_python -m pip install --upgrade pip done echo "所有虚拟环境pip升级完成"
- 给脚本加执行权限:
chmod +x ~/.local/bin/pyenv-upgrade-all-pip - 之后只要在终端执行
pyenv-upgrade-all-pip即可自动完成全量升级。
注意事项
- 执行前建议先退出当前激活的pyenv虚拟环境,避免路径冲突,可以先运行
pyenv deactivate - 若存在Python版本过旧的虚拟环境,升级后pip可能不兼容,可以在遍历命令中添加过滤规则排除对应环境,示例:
# 排除Python 2.7版本的虚拟环境 for venv_python in ~/.pyenv/versions/*/bin/python; do if [[ ! $venv_python =~ "2.7" ]]; then $venv_python -m pip install --upgrade pip fi done - 不要用sudo执行升级命令,pyenv所有虚拟环境都存放在当前用户目录下,加sudo会导致文件权限混乱。
内容的提问来源于stack exchange,提问作者Evan Smith
相关产品推荐
相关产品推荐

