使用pyenv升级Python补丁版本时如何保留已安装软件包?
使用pyenv升级Python补丁版本后能否保留已安装软件包?
默认情况下不能直接保留——你的猜测是对的,pyenv为每个Python版本(哪怕只是补丁号不同的3.11.1和3.11.2)维护完全独立的安装目录和site-packages文件夹,两个版本的环境是彻底隔离的,3.11.1里装的IPython不会自动出现在3.11.2中。
不过你可以通过以下方法快速迁移已安装的包:
- 手动导出导入包列表:
- 切换到旧版本:
pyenv local 3.11.1 - 导出当前环境的包清单:
pip freeze > requirements.txt - 切换到新版本:
pyenv local 3.11.2 - 批量安装所有包:
pip install -r requirements.txt
- 切换到旧版本:
- 也可以借助pyenv的第三方插件(比如
pyenv-pip-migrate)一键完成迁移,不过手动导出导入的方式更直观可控,也不需要额外安装插件。
因为是补丁版本升级,Python的API兼容性极高,迁移过程基本不会出现依赖问题,少数依赖底层Python实现的包可能需要重新编译,但这种情况非常少见。
内容的提问来源于stack exchange,提问作者Masked Man
相关产品推荐
相关产品推荐

