前言Python 的不同版本之间常常存在依赖关系和兼容性问题,为了方便开发人员在 不同项目中使用不同的版本 。 如果大家使用过Python版本管理工具,肯定大多数人使用的都是Anaconda,它是一个优秀的数据科学开发环境,本身也提供了丰富的Python工具集合和常用的科学计算与数据分析库。但Anaconda体积比较庞大,也携带有图形化界面,它不算一个轻量级的Python版本管理工具。 所以 pyenv 这一简单而强大的 Python 版本管理工具应运而生。这个工具小编已经用了两年多了,感觉使用体验上都还不错,故本文将介绍 pyenv 的基本概念、安装方法以及使用和注意事项,帮助开发者更好地管理 Python 版本。 ![]() 一、pyenv 简介pyenv 是一款轻量级的 Python 版本管理工具,可以在同一台机器上同时安装多个 Python 版本,并且可以根据应用程序或项目的需求进行快速切换。它的主要功能包括版本的安装、卸载、切换和全局默认版本的设置。 提示:pyenv不大适合Windows系统使用,但也可以安装使用;主要适用于MacOS、Linux等unix系统
pyenv和主流的pipenv、virtualenv的关系pipenv 是 requests 作者 Kenneth Reitz大神写的一个python虚拟环境管理工具, 结合了pip和virtualenv的功能, 侧重点还是在包环境管理上, 使用思路是先创建一个指定python版本的环境, 然后在此环境上安装相应的包, 好评不错, 看到很多大牛都在推荐。 virtualenv 是一个比较传统成熟的虚拟环境管理工具了, 用的人也比较多, 思路也是创建虚拟环境, 然后安装相应的包, 要进入环境就source一下activate脚本激活一下, 尽管成熟, 但也经常由于各种原因在项目部署时老是容易出现一些环境问题。 二、pyenv 安装pyenv 的主流安装方式有两种,一是按照官方提供的方法下载安装,二是通过行业大佬们写好的一键安装脚本安装。 1、官方Git方式安装对于MacOS用户,可以使用Homebrew来直接安装pyenv: brew update
brew install pyenv 当然也可以使用第一种 git 下载pyenv
除此之前还需要下载pyenv虚拟环境包管理工具pyenv-virtualenv: $ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv 然后我们在Mac或Linux系统shell环境变量配置文件中配置,配置如下(.zshrc/.bashrc):
最后,在配置文件前执行source 命令, 使其生效。 输入pyenv --version测试一下,出现如下画面即为安装成功! 2、三方一键安装可以使用大佬们封装好的一键安装脚本进行安装: curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash 安装过程可能会有提示,根据提示安装即可。 3、pyenv 卸载pyenv 卸载方式很简单,直接删除pyenv目录即可。
同时需要将配置文件(.zshrc或.bashrc)中pyenv相关的删除掉: export PATH='~/.pyenv/bin:$PATH'
eval '$(pyenv init -)'
eval '$(pyenv virtualenv-init -)' 三、pyenv 环境管理1、解释器版本安装与切换查询当前可安装的版本:
输出: ![]() 安装指定版本(安装完成后需要pyenv rehash): pyenv install 3.8.12 不过我不喜欢这种安装方式,每次切换还需要输入版本号,很麻烦,而且谁没事记版本号,后面项目多了,环境多了,同版本又怎么区分。这时候就用到我们pyenv的虚拟环境包管理进行安装,他就多了一个虚拟环境名称,跟Anaconda一样。
查询已安装的Python版本: pyenv versions 输出: ![]() 指定全局版本,当然也可以指定多个全局版本,前面的优先
指定shell版本,意思是在哪个目录下执行设置的版本,下次进入该目录会自动切换到该Python版本,多项目操作时,不要再手动切换了 pyenv shell normal_work 删除指定版本
只查看已安装的虚拟环境列表 pyenv virtualenvs 激活虚拟环境
退出虚拟环境 pyenv deactivate 四、pyenv安装Anacondapyenv其实内部集成了Anaconda的软件包,在上面可安装列表中也可以看到有anaconda的版本可供下载安装。而且还有很多的版本,miniconda的也有。 使用pyenv创建anaconda的虚拟环境
我们进入conda的虚拟环境 pyenv activate conda_demo_env 之后可以直接使用conda命令来管理该环境
五、总结1、pyenv极大程度的利用了环境变量工具,通过在环境变量前面插入新路径来实现python解释器版本管理和虚拟环境管理。 2、pyenv相比其他工具,更加侧重在 python 解释器版本管理上, 比包管理更大一个层级, 使用pyenv我们可以方便的下载指定版本的python解释器, pypi, anaconda等, 可以随时自由的在shell环境中本地、全局切换python解释器。 3、开发的时候不需要限定某个版本的虚拟环境, 只需要在部署的时候用pyenv local指定当前项目目录使用某个版本就好了,很方便。 4、pyenv也可以创建好指定的虚拟环境, 但不需要指定具体目录, 自由度更高, 使用也简单。
|
|