如何更新pyenv创建的所有环境中的pip?
批量更新pyenv所有虚拟环境的pip(无需for循环)
直接用这条命令就能批量搞定所有pyenv环境的pip升级,不用写循环:
pyenv versions --bare | xargs -I {} sh -c 'PYENV_VERSION={} python -m pip install --upgrade pip'
命令拆解:
pyenv versions --bare:列出pyenv管理的所有环境(包括基础Python版本和虚拟环境),输出格式干净,没有多余标记xargs -I {}:把每个环境名称依次替换成{},传递给后续的shell命令PYENV_VERSION={} python -m pip install --upgrade pip:临时切换到指定环境,调用该环境自带的Python来升级自身的pip,不用手动激活环境
如果只想更新自定义虚拟环境(跳过基础Python版本,比如3.12.1这类),可以用过滤命令:
pyenv versions --bare | grep -vE '^[0-9]+\.[0-9]+\.[0-9]+$' | xargs -I {} sh -c 'PYENV_VERSION={} python -m pip install --upgrade pip'
这里用grep -vE排除了纯版本号格式的基础环境,只处理你自己创建的虚拟环境。
执行后,每个环境的pip都会自动升级到最新版,已经是最新的环境会自动跳过,不会报错。
内容的提问来源于stack exchange,提问作者David Leal
相关产品推荐
相关产品推荐

