众所周知,Python发展至今,版本众多,在使用过程中经常遇到第三方库依赖的Python版本和系统Python版本不一致的情况。同时又因系统底层需调用当前版本Python,所以不能随意变更当前系统Python版本。如此情境下就会有Python多版本共存的情况。于是,Python多环境管理工具应运而生。Pyenv和Virtualenv均为Python管理工具,不同的是,Pyenv是对python的版本进行管理,实现不同版本之间的切换和使用;而Virtualenv则通过创建虚拟环境,实现与系统环境以及其他python环境的隔离,避免相互干扰。
1、Pyenv的部署和使用
Pyenv是一个简单的python版本管理工具,以前叫做Pythonbrew。它让你能够方便地切换全局python版本,安装多个不同的python版本,设置独立的某个文件夹或者工程目录特异的python版本,同时创建python虚拟环境(virtualenv's)。所有这些操作均可以在类Unix系统的机器上(Linux和OS X)不需要依赖python本身执行,而且它工作在用户层,不需要任何sudo操作。
pyenv作为python的版本管理工具,通过改变shell的环境变量来切换不同的python版本,以达到多版本共存的目的。该工具不支持windows系统。具体工作原理如下:
1、pyenv安装后会在系统PATH变量中插入shims路径,每次执行python相关的可执行文件时,会优先在shims里寻找python路径 ~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin;
2、系统选择python版本,依如下顺序选择python的版本:
1)shell变量设置(执行pyenv shell查看)
2)当前可执行文件目录下的.python_version文件里的版本号(执行pyenv shell查看)
3)上层目录查询找到的第一个.pyenv-version文件
4)全局的版本号在 ~/.pyenv/version文件内(执行pyenv global查看)
3、确定版本文件的位置和python版本后,pyenv会根据 版本号在 ~/,pyenv/versions/文件夹中查找对应的python版本。执行命令 pyenv versions可查看系统目前安装的python版本。
1)部署Pyenv
[root@localhost ~]# git clone git://github.com/yyuu/pyenv.git ~/.pyenv
[root@localhost ~]# echo 'export PYENV_HOME="$HOME/.pyenv"' >> ~/.bashrc
[root@localhost ~]# echo 'export PATH="$PYENV_HOME/bin:$PATH"' >> ~/.bashrc
[root@localhost ~]# echo 'eval "$(pyenv init -)"' >> ~/.bashrc
[root@localhost ~]# source ~/.bashrc
[root@localhost ~]# pyenv versions
若只有系统一个python版本,执行pyenv versions会显示:
[root@localhost ~]# pyenv versions
* system (set by /root/.pyenv/version)
若系统里有多个python版本,执行pyenv versions会显示:
[root@localhost ~]# pyenv versions
* system (set by /root/.pyenv/version)
3.6.5
2、通过Pyenv管理多Python版本
Pyenv命令使用规则如下:
Usage:pyenv <command> [<args>]
// 查看可安装的版本列表
[root@localhost ~]# pyenv install --list
// 安装指定Python版本
[root@localhost ~]# pyenv install 3.6.6
// 切换当前目录Python版本为3.6.6
[root@localhost ~]# pyenv local 3.6.6
// 切换全局目录Python版本为3.6.6
[root@localhost ~]# pyenv global 3.6.6
// 刷新shims
[root@localhost ~]# pyenv rehash
Pyenv更多用法如下:
命令 | 功能 |
commands | 列出pyenv的所有可用命令 |
local | 设置或列出当前目录下的python版本号 |
global | 设置或列出全局环境下的python版本号 |
shell | 设置或列出shell环境下的python版本号 |
install | 安装指定的python版本 |
uninstall | 卸载指定的python版本 |
rehash | 重新加载pyenv的shims路径(安装完python版本后需执行该命令) |
version | 展示当前python版本号及其生效路径 |
versions | 列出pyenv管控的所有可用的python版本 |
which | 列出要使用命令的绝对路径 |
whence | 列出后缀命令的所有可用版本 |
2、Virtualenv的部署与使用
virtual是底层基于python开发的python环境隔离工具,其通过虚拟目录的方式来实现多环境并存。工作原理如下:在你所需要的地方创建工作目录,该目录类似系统安装的python目录,保留完整的python环境、解释器、标准库和第三方库等,当我们需要的时候,切换环境变量激活即可使用。
1、安装pip
[root@localhost ~]# yum -y install python-pip python-devel
2、安装virtualenv
[root@localhost ~]# pip install virtualenv
3、通过virtualenv管理多Python版本
virtualenv命令的使用格式如下:
virtualenv [OPTIONS] DEST_DIR
实践操作:
# 创建虚拟工作目录
[root@localhost ~]# virtualenv /data/virtualpy
# 切换并激活虚拟工作环境
[root@localhost ~]# source /data/virtualpy/bin/activate
# 退出虚拟工作目录
(virtualpy) [root@localhost ~]# deactivate
至此,多版本Python环境工具Pyenv和Virtualenv介绍完毕。
- 输入编号:6300,直达文章
- 输入m|M,直达目录列表