Python部署虚拟环境的利器——Virtualenv
virtualenv is a tool to create isolated Python environments.
virtualenv 是创建独立Python开发环境的工具,用于解决同一台机器上不同的Python工程的依赖、版本以及间接权限等问题。比如项目foo1依赖Django1.3,而项目foo2依赖Django1.7,而当前全局开发环境为Django1.8,版本的不同会导致项目所需包的版本不兼容等问题,使项目无法正常运行,使用virtualenv来创建相对独立的虚拟环境,可以很好的解决此类问题。此外,值得一提的是,对于项目打包迁移,如部署Web应用项目等应用场景,virtualenv都很有用武之地。
virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库。
下面介绍一下与使用Virtualenv相关的技巧。
1.安装Virtualenv
$ pip install virtualenv //或者由于权限问题使用sudo临时提升权限 $ sudo pip install virtualenv
2.virtualenv创建虚拟环境
1 virtualenv ENV 2 #创建一个名为ENV的目录,并安装了ENV/bin/python 3 #创建了lib,include,bin目录,安装了pip
lib目录 : 所有安装的python库都会放在这个目录中的lib/pythonX.X/site-packages/中 ;
bin目录 : bin/python是当前虚拟环境使用的python解析器 ;
如果在命令行中运行
virtualenv --system-site-packages ENV
, 会继承/usr/lib/python3.6/site-packages
下的所有库, 最新版本virtualenv把把访问全局site-packages
作为默认行为
default behavior.
3.激活virtualenv
1 #ENV目录下使用如下命令 2 source ./bin/activate #激活当前virtualenv 3 #当用户名前面出现小括号括起来的虚拟环境名时,表明虚拟环境被成功激活
使用“pip list”指令可查看当前库
4.关闭virtualenv
deactivate
5.指定python版本
可使用-p PYTHON_EXE选项在创建虚拟环境的时候指定Python版本
1 #创建python2.7虚拟环境 2 virtualenv -p /usr/bin/python2.7 ENV2.7 3 4 #创建python3.4虚拟环境 5 virtualenv -p /usr/local/bin/python3.4 ENV3.4
这样可以解决不同项目python版本冲突以及和python库版本不兼容等问题。
6.生成可打包环境
某些特殊需求下,可能没有网络,我们希望直接打包一个ENV,解压后直接使用,这时候可以使用virtualenv --relocatable指令将ENV修改为可更改位置的ENV
#对当前已经创建的虚拟环境更改为可迁移 virtualenv --relocatable ./
7.获得帮助
virtualenv -h
8.官方文档
http://virtualenv.readthedocs.org/en/latest/virtualenv.html