centos7下安装并配置pyenv多版本管理python3.+
目录
一、简介
二、安装pyenv和python
三、配置pyenv多版本控制
一、简介
1、简介
pyenv作为常用的python版本管理工具,对开发效率的提升有很大帮助,可以实现在多个版本的Python之间切换,简单实用,并且遵循UNIX的单一用途工具的传统,做的很棒。
ps:pyenv项目是从rebenv和ruby-build分支出来的,并且为Python修改过。
pyenv可以做到:
1、让您基于每个用户更改全局Python版本。
2、为每个项目的Python版本提供支持。
3、允许您使用环境变量覆盖Python版本。
4、一次从多个版本的Python中搜索命令。 这可能有助于使用tox测试Python版本。
与pythonbrew和pythonz相比,pyenv:
1、取决于Python本身。 pyenv是由纯shell脚本制作的。 没有Python的引导问题。
2、需要加载到你的shell中。 相反,pyenv的shim方法通过向$ PATH添加目录来工作。
3、管理virtualenv。 当然,你可以自己创建virtualenv,或者pyenv-virtualenv来自动化该过程。
摘自https://github.com/pyenv/pyenv
2、pyenv工作原理
介绍pyenv工作原理之前必然要先简单介绍一下PATH环境变量的相关知识。
当您运行类似python或pip的命令时,您的操作系统会搜索目录列表以查找具有该名称的可执行文件。此目录列表位于一个名为的环境变量PATH中,列表中的每个目录用冒号分隔:
/usr/local/bin:/usr/bin:/bin
PATH从左到右搜索目录,因此列表开头的目录中的匹配可执行文件优先于最后的另一个目录。在这个例子中,该 /usr/local/bin目录将首先搜索,然后/usr/bin,然后/bin。
pyenv的工作原理是在原有的PATH变量搜索目录的前面 插入一个shim目录PATH:
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
通过一个名为rehashing的进程,pyenv在该目录中维持shims程序,以匹配每个已安装的Python-python,pip等版本的每个Python命令。
shims是轻量级可执行文件,只需将命令传递给pyenv即可。 所以安装了pyenv后,当你运行pip时,你的操作系统会执行以下操作:
在PATH中搜索名为pip的可执行文件
在PATH的开头找到名为pip的pyenv shim
运行名为pip的shim,然后将命令传递给pyenv
综合上述:pyenv使用注入到PATH中的SHIM程序可执行文件拦截Python命令,确定应用程序指定了哪个Python版本,并将命令传递给正确的Python安装。
而PATH变量在开机或者登录用户时会自动加载,加载顺序一般为/ect/profile -> /ect/profile.d/*.sh -> /ect/profile.d/lang.sh -> /ect/sys config/i18n -> ~/.bash_profile -> ~/.bashrc -> ~/ect/bashrc
二、安装pyenv和python
1、安装git
$ yum install git -y
# 使用yum安装,可以看到如下代码;
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.163.com
* updates: mirrors.cn99.com
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 166 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 215 kB 00:00:00
(3/4): base/7/x86_64/primary_db | 6.0 MB 00:00:01
(4/4): updates/7/x86_64/primary_db | 7.4 MB 00:00:16
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-19.el7 will be updated
--> Processing Dependency: