Virtualenv介绍

【翻译】http://virtualenv.readthedocs.org/en/latest/index.html html

virtualenv是建立独立python环境的一种工具。python

环境搭建的过程当中,有一个基本的问题就是关于某个引用项、版本,以及间接权限的问题。试想,若是你有一个应用须要某个版本1的库文件,但另外一个应用须要版本2,那怎么使用这两个应用?把全部的库文件都安装到/usr/lib/python2.7/site-packages(或者任何你的平台的默认位置),会很容易使得本来不想升级的应用被升级。bootstrap

或者说,要是你想安装一个应用并使之保持原样,该怎么办?若是当前的应用工做正常,任何对它的库文件或者版本的变动均可能对这个应用形成破坏。服务器

同时,要是你不能把安装包放在全局的site-packages目录怎么办?好比说,在一个共享服务器上。app

全部的这些状况,virtualenv都能帮到你。它可以建立一个包含本身安装路径的环境。这个环境下不与其余的虚拟环境共享库文件(也能够不访问安装的全局库文件)。python2.7

相同类型的工具还有workingenv(不建议使用,virtualenv的早期版本),virtual-python(也是virtualenv的早期版本,不适用Windows),zc.buildout等。工具

# Here's a more concrete example of how you could use this
import virtualenv, textwrap
output = virtualenv.create_bootstrap_script(textwrap.dedent("""
import os, subprocess
def after_install(options, home_dir):
    etc = join(home_dir, 'etc')
    if not os.path.exists(etc):
        os.makedirs(etc)
    subprocess.call([join(home_dir, 'bin', 'easy_install'),
                     'BlogApplication'])
    subprocess.call([join(home_dir, 'bin', 'paster'),
                     'make-config', 'BlogApplication',
                     join(etc, 'blog.ini')])
    subprocess.call([join(home_dir, 'bin', 'paster'),
                     'setup-app', join(etc, 'blog.ini')])
"""))
f = open('blog-bootstrap.py', 'w').write(output)

强烈建议任何应用的开发或部署都采用这类工具。ui

相关文章
相关标签/搜索