You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

从pyenv切换至venv时,如何替代pyenv的Python版本管理功能?

从pyenv切换至venv时,如何替代pyenv的Python版本管理功能?

嘿,我刚好研究过这个问题!首先得掰扯清楚:venv本身只管创建和管理虚拟环境,它压根没自带Python版本的安装、多版本切换这类功能——这也是它和pyenv最核心的区别。不过如果铁了心要走纯原生官方路线,也能凑出一套替代方案,我给你唠唠:

  • 安装不同Python版本
    官方没有跨平台的一键安装工具,得自己动手:直接去Python官网下载对应版本的安装包手动安装。注意安装时,Windows/macOS别乱勾“添加到系统PATH”,不然全局版本会打架;Linux的话可以用系统包管理器(比如apt、dnf)安装,装完一般会是python3.10python3.11这种带版本号的可执行文件。

  • 查看已装的Python版本
    终端里敲命令就能看:

    • Linux/macOS:输入ls /usr/bin/python*(查看系统级版本)或者ls ~/.local/bin/python*(查看用户自行安装的版本)
    • Windows:直接输入where python,或者去当初的安装目录里手动查看
  • 切换/使用特定版本
    没了pyenv global或者pyenv local那种一键切换的爽感,得直接指定版本号调用。比如想用Python3.10创建虚拟环境,就敲python3.10 -m venv 你的环境名;要运行脚本就用python3.10 你的脚本.py。而且venv创建的虚拟环境是和创建它的Python版本绑定的,激活环境后就自动用这个版本了,其实也能实现项目级的版本隔离,和pyenv local的效果差不多。

  • 卸载Python版本
    不同系统操作不一样:

    • Windows:去控制面板的“程序和功能”里找到对应版本,直接卸载就行
    • macOS:如果是官网安装包装的,删掉/Library/Frameworks/Python.framework/Versions/下对应版本的文件夹,再清掉/usr/local/bin里的相关软链接
    • Linux:用包管理器卸载,比如sudo apt remove python3.10

对了,之前也看到官方说venv是推荐的虚拟环境工具,确实能替代pyenv的虚拟环境管理部分,但版本安装和全局切换这块,原生方案确实没pyenv那么省心,得多费点手动操作的功夫。

备注:内容来源于stack exchange,提问作者Roofus

火山引擎 最新活动