众所周知,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,直达目录列表