You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pyenv更新Python版本并保留原有pip包?

用pyenv升级Python小版本并保留pip包的方法

pyenv的设计是每个Python版本独立存放,没有内置的「直接升级并迁移包」命令,但可以通过简单步骤实现需求,以下是Windows(pyenv-win)和Mac通用的操作流程:

步骤1:导出旧版本的包列表

先确认当前激活的是全局3.10.4版本(用pyenv version可查看),然后执行:

pip freeze > requirements.txt

这条命令会把当前环境所有已安装的pip包导出到requirements.txt文件中。

步骤2:安装Python 3.10.5

执行安装命令:

pyenv install 3.10.5

等待安装完成,pyenv会自动下载并完成对应版本的配置(Mac下是编译,Windows下是解压部署)。

步骤3:切换全局版本到3.10.5

设置新版本为全局默认:

pyenv global 3.10.5

再次用pyenv version确认版本切换成功。

步骤4:迁移pip包

在新的3.10.5环境中,执行:

pip install -r requirements.txt

这会自动安装所有之前导出的包,3.10.x这类小版本升级几乎不会出现兼容性问题。

步骤5:(可选)删除旧版本

验证新环境正常使用后,可以删除旧的3.10.4版本:

pyenv uninstall 3.10.4

为什么pyenv没有直接的update命令?

pyenv的核心优势是多版本隔离,每个Python版本都存放在独立目录中(比如Mac的~/.pyenv/versions/、Windows的%USERPROFILE%\.pyenv\pyenv-win\versions/),和官方安装时覆盖同一目录的逻辑完全不同,所以没有提供「覆盖升级」的选项。

可选的简便迁移方式(不推荐但可行)

如果不想导出包列表,可以直接复制旧版本的site-packages目录到新版本对应路径:

  • Mac:复制~/.pyenv/versions/3.10.4/lib/python3.10/site-packages/下的内容到~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/
  • Windows:复制%USERPROFILE%\.pyenv\pyenv-win\versions\3.10.4\Lib\site-packages\下的内容到%USERPROFILE%\.pyenv\pyenv-win\versions\3.10.5\Lib\site-packages\

但这种方法可能导致部分编译型包出现兼容性问题,所以优先推荐用pip freeze+pip install的标准流程。

内容的提问来源于stack exchange,提问作者Shai Avr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:18:21