知识库 : 如何使用virtualenvwrapper来管理大数据集群的python开发环境

一、VirtualENV及VirtualEnvWrapper介绍

在日常的Python程序开发中,会经常引用一些开源的工具包,这些包由于由开源社区维护,软件版本会频繁更新,在出现大的版本更新时就会出现新版本无法向下兼容的问题。在实际工作当中不同项目之间所使用的工具包版本是并不一致的,如果使用统一的开发环境,就会出现无法满足不同项目需求的情况。

VirtualEnv和VirtualEnvWrapper就是为了解决开源工具包在同一个系统上多版本共存的问题。

VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper则为前者提供了一些便利的命令行上的封装,使得操作更为简便。

二、环境依赖

安装VirtualEnv和VirtualEnvWrapper之前,首先要在系统中安装系统的依赖包和Python运行环境。

1、安装系统依赖包:

yum install -y vim pdsh gcc zlib-* openssl-devel libffi.x86_64 libffi-devel ncurses.x86_64 ncurses-devel.x86_64 libxslt.x86_64 libxslt-devel.x86_64 libxml2-devel.x86_64 libcurl-devel.x86_64 bzip2-devel.x86_64 

2、由于CentOS 6.x系列的默认Python版本为2.6,所以需要手动编译安装Pyhton 2.7

手动下载Python 2.7的安装包后,进行解压,并编译安装。具体命令如下:

tar zxvf Python 2.7.tar.gz

cd Python 2.7

./configure —prefix=/usr --with-bz2

 如果遇到提示没有zlib的问题,则需要在Module/Setup中修改467行,取消该行的注释之后重新安装。

=============================================

将:

 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

 修改为:

 zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

=============================================

make && make install

3、修改yum的执行程序

 vim /usr/bin/yum

 将第一行的python改为python2.6

4、安装pip

wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py

python get-pip.py


三、VirtualEnvWrapper的安装方法

 1、安装命令:

pip install virtualenvwrapper

2、把下面这句加到~/.bash_profile里面,之后每次登录系统都会自动加载virtualenvwrapper

source /usr/local/bin/virtualenvwrapper.sh

四、常用命令

通过运行virtualenvwrapper -h命令可以看到virtualenvwrapper的说明信息和常用命令。

下面对一些常用命令进行介绍:

1、创建新的python虚拟环境

命令:mkvirtualenv [envname]

该命令会帮我们创建一个新环境,默认情况下,环境的目录是.virtualenv/en1,创建过程中它会自动帮我们安装pip,以后我们要安装新依赖时可直接使用pip命令。

 创建完之后,自动切换到该环境下工作,可看到提示符变为:

 (envname)$

 在这个环境下安装的依赖不会影响到其他的环境

2、切换环境

命令:workon [envname]

随时使用“workon 环境名”可以进行环境切换,如果不带环境名参数,则显示当前使用的环境

3、关闭python虚拟环境

命令:deactivate

在某个环境中使用,会关闭python虚拟环境,并切换到系统的python环境

4、显示某个环境中已经安装的依赖包

命令:lssitepackages

在某个虚拟环境中执行该命令,就可以看到该环境已经安装的依赖包列表

5、查看所有python虚拟环境

命令:lsvirtualenv

此命令可以列出系统中所有python虚拟环境的名称