34.Python多项目开发环境分割利器——virtualenv

来源:互联网 发布:世界历年gdp数据 编辑:程序博客网 时间:2024/06/01 17:11

转载请注明原始出处:http://blog.csdn.net/a464057216/article/details/51996225

使用Python进行项目开发的时候,难免会依赖很多package。如果项目1依赖package A的版本0.1,项目2依赖package A的版本0.2,难免会产生冲突。另外一种情况是使用公用机器进行开发时,如果没有访问Python标准的site-packages目录的权限,将无法安装各种需要的package。virtualenv是解决这些问题的利器,它能够为不同项目分离不同的Python环境,为它们安装不同的package。

  • 安装virtualenv工具
    如果有pip工具,可以使用如下命令安装:
$ sudo pip install virtualenv

在Ubuntu上也可以使用apt-get安装:

$ sudo apt-get install python-virtualenv
  • 建立virtualenv环境
$ virtualenv ENV

ENV是放置虚拟工作环境的目录,包含bin/include/lib/等子目录,在虚拟工作环境下安装的package会放在ENV/lib/pythonX.X/site-packages/目录中,ENV/bin/子目录中放置可执行程序,比如Python的可执行文件,如果脚本中组织行为#! /path/to/ENV/bin/python,则会使用虚拟工作环境的Python运行脚本。默认情况下,安装完virtualenv环境后,默认会在该环境中安装pip、setuptools等工具。

  • 使用virtualenv
$ source ENV/bin/activate

或者

$ . ENV/bin/activate

Shell行首的系统提示符会发生变化,告诉用户在虚拟环境中,其实它是将ENV/bin/这个目录加到了$PATH环境变量的前面。在虚拟环境中使用pip或者easy_install命令安装的各种包都会保存在ENV下(使用pip或easy_install时不需要使用sudo)。

  • 退出virtualenv
$ deactivate
  • 删除virtualenv
$ rm -rf venv
  • 常用的virtualenv选项

  • --system-site-packages:如果有访问系统site-packages目录的权限,可以在创建virtualenv的时候使用这个选项,这样新的虚拟工作环境会继承系统的packages。

  • -p PYTHON_EXE:如果系统中存在多个Python版本,在建立virtualenv时可以使用这个选项指定Python版本,如-p python2.7。
  • --no-site-packages:该选项已经被废弃,目前virtualenv默认不包含系统的site-packages。

  • 共享开发环境
    实际项目开发中,我们使用Git共享代码库,在代码库中通常提供一个requirements的文件,用来共享环境依赖信息。在虚拟工作环境中,使用$ pip freeze > requirements即可以将当前的package依赖写入requirements文件(这个文件中不会包含默认的pip、setuptools和wheel信息),push到代码库以后,别人就可以在虚拟工作环境下通过$ pip install -r requirements快速搭建一样的开发环境。

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

1 0