赞!优雅的Python多环境管理神器!易上手易操作!

简介: 赞!优雅的Python多环境管理神器!易上手易操作!

前言


Python 的不同版本之间常常存在依赖关系和兼容性问题,为了方便开发人员在 不同项目中使用不同的版本


如果大家使用过Python版本管理工具,肯定大多数人使用的都是Anaconda,它是一个优秀的数据科学开发环境,本身也提供了丰富的Python工具集合和常用的科学计算与数据分析库。但Anaconda体积比较庞大,也携带有图形化界面,它不算一个轻量级的Python版本管理工具。


所以 pyenv 这一简单而强大的 Python 版本管理工具应运而生。这个工具小编已经用了两年多了,感觉使用体验上都还不错,故本文将介绍 pyenv 的基本概念、安装方法以及使用和注意事项,帮助开发者更好地管理 Python 版本。


一、pyenv 简介


pyenv 是一款轻量级的 Python 版本管理工具,可以在同一台机器上同时安装多个 Python 版本,并且可以根据应用程序或项目的需求进行快速切换。它的主要功能包括版本的安装、卸载、切换和全局默认版本的设置。


提示:pyenv不大适合Windows系统使用,但也可以安装使用;主要适用于MacOS、Linux等unix系统

pyenv 是一个forked自ruby社区的简单、低调、遵循UNIX哲学的Python环境管理工具, 它可以轻松切换全局解释器版本, 同时结合vitualenv插件方便的管理对应的包源。


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

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

除此之前还需要下载pyenv虚拟环境包管理工具pyenv-virtualenv

$ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

然后我们在Mac或Linux系统shell环境变量配置文件中配置,配置如下(.zshrc/.bashrc):

export PYENV_ROOR="$HOME/.pyenv"
export PATH=$PYENV_ROOT/shims:$PATH
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

最后,在配置文件前执行source 命令, 使其生效。


输入pyenv --version测试一下,出现如下画面即为安装成功!


2、三方一键安装


可以使用大佬们封装好的一键安装脚本进行安装:

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

安装过程可能会有提示,根据提示安装即可。


3、pyenv 卸载


pyenv 卸载方式很简单,直接删除pyenv目录即可。

rm -rf ~/.pyenv

同时需要将配置文件(.zshrc或.bashrc)中pyenv相关的删除掉:

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

三、pyenv 环境管理


1、解释器版本安装与切换


查询当前可安装的版本

pyenv install --list

输出:

安装指定版本(安装完成后需要pyenv rehash):

pyenv install 3.8.12

不过我不喜欢这种安装方式,每次切换还需要输入版本号,很麻烦,而且谁没事记版本号,后面项目多了,环境多了,同版本又怎么区分。这时候就用到我们pyenv的虚拟环境包管理进行安装,他就多了一个虚拟环境名称,跟Anaconda一样。

pyenv virtualenv 3.10.7 chatgpt_env

查询已安装的Python版本

pyenv versions

输出:


指定全局版本,当然也可以指定多个全局版本,前面的优先

pyenv global normal_work
  pyenv global normal_work chatgpt_env

指定shell版本,意思是在哪个目录下执行设置的版本,下次进入该目录会自动切换到该Python版本,多项目操作时,不要再手动切换了

pyenv shell normal_work

删除指定版本

pyenv uninstall normal_work

只查看已安装的虚拟环境列表

pyenv virtualenvs

激活虚拟环境

pyenv activate normal_work

退出虚拟环境

pyenv deactivate

四、pyenv安装Anaconda


pyenv其实内部集成了Anaconda的软件包,在上面可安装列表中也可以看到有anaconda的版本可供下载安装。而且还有很多的版本,miniconda的也有。


使用pyenv创建anaconda的虚拟环境

pyenv virtualenv miniconda-3.0.5  conda_demo_env

我们进入conda的虚拟环境

pyenv activate conda_demo_env

之后可以直接使用conda命令来管理该环境

conda install xxx

五、总结


1、pyenv极大程度的利用了环境变量工具,通过在环境变量前面插入新路径来实现python解释器版本管理和虚拟环境管理。


2、pyenv相比其他工具,更加侧重在 python 解释器版本管理上, 比包管理更大一个层级, 使用pyenv我们可以方便的下载指定版本的python解释器, pypi, anaconda等, 可以随时自由的在shell环境中本地、全局切换python解释器。


3、开发的时候不需要限定某个版本的虚拟环境, 只需要在部署的时候用pyenv local指定当前项目目录使用某个版本就好了,很方便。


4、pyenv也可以创建好指定的虚拟环境, 但不需要指定具体目录, 自由度更高, 使用也简单。


注意:pyenv 不支持 Windows 系统。Windows 上有一个 pyenv 的替代品,是 pyenv-win 。它用来在多个安装的 Python 版本之间进行切换。

相关文章
|
13天前
|
Python
空间管理大师已上线!(2),Python高级工程师进阶学习】
空间管理大师已上线!(2),Python高级工程师进阶学习】
|
13天前
|
程序员 开发工具 Python
[oeasy]python017_万行代码之梦_vim环境_复制粘贴
在这个教程中,作者分享了如何在 Vim 编辑器中快速创建和操作大量代码行。首先,通过 `yy` 复制一行,然后使用 `p` 粘贴来增加代码行数。通过反复粘贴,可以迅速生成多行代码。为了加快操作,可以用 `9999p` 来一次性粘贴9999行。接着,介绍了撤销(`u`)和重做(`ctrl+r`)的操作,以及删除整篇文档的快捷方式。最后,作者提到虽然可以生成一万行代码,但并不建议这样做,因为可能会导致程序崩溃,并提醒大家适度编程。
33 2
|
3天前
|
Python
新手向 Python:VsCode环境下Manim配置
该文介绍了如何准备和配置开发环境以使用Manim,主要包括两个步骤:一是准备工作,需要下载并安装VsCode和Anaconda,其中Anaconda需添加到系统PATH环境变量,并通过清华镜像源配置;二是配置环境,VsCode中安装中文插件和Python扩展,激活并配置虚拟环境。最后,安装ffmpeg和manim,通过VsCode运行测试代码验证配置成功。
18 1
|
1天前
|
存储 Python
Python字典类型及其操作详解
Python字典类型及其操作详解
|
1天前
|
存储 索引 Python
Python列表类型及其操作详解
Python列表类型及其操作详解
|
4天前
|
缓存 jenkins 测试技术
Python中的环境管理与虚拟环境的使用
【5月更文挑战第21天】本文阐述了Python开发中环境管理的重要性,尤其是使用虚拟环境来隔离项目依赖,避免冲突。通过venv模块创建和管理虚拟环境,可以确保每个项目独立运行。文章还介绍了虚拟环境的隔离性、可移植性优势,以及高级工具如`virtualenvwrapper`和`Pipenv`的使用。此外,讨论了自动化管理虚拟环境的方法,如使用`requirements.txt`和Pipenv,以及在CI/CD流程中如何整合虚拟环境以提高效率和代码质量。总之,正确管理虚拟环境对提升项目稳定性和团队协作至关重要。
16 4
|
10天前
|
网络安全 Python
python 新建环境和删除环境_pyenv删除环境
python 新建环境和删除环境_pyenv删除环境
python 新建环境和删除环境_pyenv删除环境
|
10天前
|
JSON 数据挖掘 编译器
Anconda环境下Vscode安装Python(1)
Anconda环境下Vscode安装Python(1)
Anconda环境下Vscode安装Python(1)
|
10天前
|
数据采集 数据安全/隐私保护 Python
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
|
10天前
|
SQL 分布式计算 算法
2024年最新【Python】列表元素的 删除 操作(remove()、pop()、切片,2024年最新Python社招面试题
2024年最新【Python】列表元素的 删除 操作(remove()、pop()、切片,2024年最新Python社招面试题
2024年最新【Python】列表元素的 删除 操作(remove()、pop()、切片,2024年最新Python社招面试题
http://www.vxiaotou.com