python管理工具pyenv

python管理工具pyenv

【摘要】
作为python后端开发工程师,需要经常切换python版本进行工作,这意味着我们的系统需要安装多个python版本,在unix 系统中一般默认自带了 Python2.7.5 ,如果我们需要安装python3,第一种方式可以通过下载源码包然后进行编译安装(make && make install),但更简单的方式应该是利用pyenv工具进行安装,结合 pyenv-virtualenv 插件,能够方便的创建和管理 python 虚拟环境,在虚拟环境中的各种操作,并不会影响到系统的正常运行,有效防止乱装 python 版本导致系统崩溃等问题的发生,本文主要讲解pyenv以及pyenv-virtualenv的安装以及使用。

【正文】
一、 pyenv工具与pyenv-virtualenv插件安装

安装环境:centos7.4
pyenv:python版本管理工具
pyenv-virtualenv:pyenv用于创建python虚拟环境的插件

1.1.安装依赖包
yum -y install gcc gcc-c++ make git patch openssl-devel zlib-devel readline-devel sqlite-devel bzip2-devel bzip2-libs #主要是安装git以及python源码编译安装需要的库

1.2.下载安装pyenv和pyenv-virtualenv
git clone https://github.com/pyenv/pyenv.git ~/pyenv
git clone https://github.com/pyenv/pyenv-virtualenv ~/pyenv-virtualenv
cd ~
mv pyenv-virtualenv/ pyenv/plugins #将下载后的pyenv-virtualenv移到pyenv/plugins下面,因为pyenv-virtualenv是作为pyenv的插件存在在这里插入图片描述

1.3.配置环境变量
echo ‘export PYENV_ROOT="$HOME/pyenv"’>> ~/.bashrc

echo ‘export PATH="$PYENV_ROOT/bin:$PATH"’>> ~/.bashrc

echo ‘eval “$(pyenv init -)”’>> ~/.bashrc

echo ‘eval “$(pyenv virtualenv-init -)”’ >> ~/.bashrc

source ~/.bashrc #使环境 生效
在这里插入图片描述

执行pyenv,如果输出如下图内容,说明pyenv安装成功
在这里插入图片描述

二、 pyenv命令使用介绍
通过pyenv -h 查看可以使用的命令
在这里插入图片描述

常用命令如下:
pyenv versions # 显示当前使用的python版本
pyenv install --list # 列出可安装版本
pyenv install # 安装对应版本
pyenv install -v # 安装对应版本,若发生错误,可以显示详细的错误信息
pyenv uninstall #卸载python
pyenv which python # 显示当前python安装路径
pyenv global # 设置系统全局的python版本
pyenv local # 设置当前路径的python版本,以后进入这个目录自动切换为该版本 ,优先级高于global
pyenv shell # 设置当前shell的python版本,优先级高于global 及 local
pyenv virtualenv #创建版本为的虚拟环境
pyenv activate #进入虚拟环境
pyenv deactivate #退出虚拟环境
pyenv virtuaenvl-delete #删除虚拟环境
2.1. 安装python版本
pyenv install 3.6.7 # 安装python 3.6.7
在这里插入图片描述

通过日志信息,可以知道该命令所做的事情的是先下载对应的python版本源码包,然后执行编译安装

2.2. 查看已经安装的python版本
pyenv versions # 版本前面的*代码当前环境中指定的python版本
在这里插入图片描述

2.3. 指定使用的python版本
有如下三条命令可以指定使用的python版本
pyenv global #全局指定
pyenv local #在具体目录下面指定,意思是如果这个命令在/tmp目录下面执行,那么/tmp目录下面使用python版本就是pyenv local指定的版本,优先级大于pyenv global指定的版本
pyenv shell #指定当前shell的python版本,退出shell后,所指定的版本会失效,这个命令指定的python版本优先级最高
优先级:pyenv shell>pyenv local>pyenv global
实验一:
在这里插入图片描述

将全局python版本有2.7.5修改为3.6.7

实验二:
在这里插入图片描述

切换/tmp目录下,通过pyenv local指定该目录使用的python版本,可以证明pyenv local的优先级的确是大于pyenv global

实验三:
在这里插入图片描述

通过pyenv shell指定当前shell的版本,这时当前shell的版本都为新指定的版本了,连/tmp目录下面的版本也被修改了,证明pyenv shell的优先级大于pyenv local,退出当前shell后,通过pyenv shell指定的版本会失效

三、 创建python虚拟环境
有了pyenv-virtualenv以后,我们可以为同一个Python解释器,创建多个不同的工作环境。例如,我们 新建两个版本为3.6.7的工作环境
pyenv virtualenv 3.6.7 python367-one
pyenv virtualenv 3.6.7 python367-two
在这里插入图片描述

pyenv activate # 进入虚拟环境
pyenv deactivate #退出虚拟环境
pyenv virtualenv-delete #删除虚拟环境
在这里插入图片描述

四、 总结
使用pyenv和python-virtualenv插件,我们就能够自由地在不同的版本之间进行切换,相比管理Python 版本,不但节省了时间,也避免了工作过程中的相互干扰。

猜你喜欢

转载自blog.csdn.net/qq_20663229/article/details/115442219