原文连接css
http://www.jianshu.com/p/08c657bd34f1html
virtualenv
经过建立独立Python开发环境的工具, 来解决依赖、版本以及间接权限
问题. 好比一个项目依赖Django1.3 而当前全局开发环境为Django1.7, 版本跨度过大, 致使不兼容使项目没法正在运行, 使用virtualenv能够解决这些问题.python
virtualenv
建立一个拥有本身安装目录的环境, 这个环境不与其余虚拟环境共享库, 可以方便的管理python版本和管理python库git
使用pip
安装Virtualenv, 使用过python的都应该知道pip
包管理神器吧, 即便不知道, 网站也有大把的教程, 不过推荐查看官方安装指南docker
$ pip install virtualenv //或者因为权限问题使用sudo临时提高权限 $ sudo pip install virtualenv
如今开始使用virtualenv管理python环境网络
➜ Test git:(master) ✗ virtualenv ENV #建立一个名为ENV的目录, 而且安装了ENV/bin/python, 建立了lib,include,bin目录,安装了pip New python executable in Installing setuptools, pip...done. ➜ Test git:(master) ✗ cd ENV ➜ ENV git:(master) ✗ ll drwxr-xr-x 14 andrew_liu staff 476 12 8 08:49 bin drwxr-xr-x 3 andrew_liu staff 102 12 8 08:49 include drwxr-xr-x 3 andrew_liu staff 102 12 8 08:49 lib
lib
,全部安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/
下bin
,bin/python
是在当前环境是使用的python解释器若是在命令行中运行
virtualenv --system-site-packages ENV
, 会继承/usr/lib/python2.7/site-packages
下的全部库, 最新版本virtualenv把把访问全局site-packages
做为默认行为
default behavior.app
#ENV目录下使用以下命令 ➜ ENV git:(master) ✗ source ./bin/activate #激活当前virtualenv (ENV)➜ ENV git:(master) ✗ #注意终端发生了变化
#使用pip查看当前库 (ENV)➜ ENV git:(master) ✗ pip list pip (1.5.6) setuptools (3.6) wsgiref (0.1.2) #发如今只有这三个 pip freeze #显示全部依赖 pip freeze > requirement.txt #生成requirement.txt文件 pip install -r requirement.txt #根据requirement.txt生成相同的环境
使用下面命令python2.7
$ deactivate
可使用-p PYTHON_EXE
选项在建立虚拟环境的时候指定python版本工具
#建立python2.7虚拟环境 ➜ Test git:(master) ✗ virtualenv -p /usr/bin/python2.7 ENV2.7 Running virtualenv with interpreter /usr/bin/python2.7 New python executable in ENV2.7/bin/python Installing setuptools, pip...done.
#建立python3.4虚拟环境 ➜ Test git:(master) ✗ virtualenv -p /usr/local/bin/python3.4 ENV3.4 Running virtualenv with interpreter /usr/local/bin/python3.4 Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4' New python executable in ENV3.4/bin/python3.4 Also creating executable in ENV3.4/bin/python Installing setuptools, pip...done.
到此已经能够解决python版本冲突问题和python库不一样版本的问题网站
某些特殊需求下,可能没有网络, 咱们指望直接打包一个ENV, 能够解压后直接使用, 这时候可使用virtualenv -relocatable
指令将ENV修改成可更改位置的ENV
#对当前已经建立的虚拟环境更改成可迁移 ➜ ENV3.4 git:(master) ✗ virtualenv --relocatable ./ Making script ./bin/easy_install relative Making script ./bin/easy_install-3.4 relative Making script ./bin/pip relative Making script ./bin/pip3 relative Making script ./bin/pip3.4 relative
$ virtualenv -h
当前的ENV都被修改成相对路径, 能够打包当前目录, 上传到其余位置使用
这并不能使虚拟环境跨平台使用