用virtualenv建立多个Python独立开发环境(转)

原文:http://www.nowamagic.net/academy/detail/1330228

不同的人喜欢用不同的方式建立各自的开发环境,但在几乎所有的编程社区,总有一个(或一个以上)开发环境让人更容易接受。 使用不同的开发环境虽然没有什么错误,但有些环境设置更容易进行便利的测试,并做一些重复/模板化的任务,使得在每天的日常工作简单并易于维护。

什么是virtualenv?

在Python的开发环境的最常用的方法是使用 virtualenv 包。 Virtualenv是一个用来创建独立的Python环境的包。现在,出现了这样的问题:为什么我们需要一个独立的Python环境? 要回答这个问题,请允许我引用virtualenv自己的文档:

virtualenv is a tool to create isolated Python environments.

The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.

Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

Also, what if you can’t install packages into the global site-packages directory? For instance, on a shared host.

In all these cases, virtualenv can help you. It creates an environment that has its own installation directories, that doesn’t share libraries with other virtualenv environments (and optionally doesn’t access the globally installed libraries either).

我们需要处理的基本问题是包的依赖、版本和间接权限问题。想象一下,你有两个应用,一个应用需要libfoo的版本1,而另一应用需要版本2。如何才能同时使用这些应用程序?如果您安装到的/usr/lib/python2.7/site-packages(或任何平台的标准位置)的一切,在这种情况下,您可能会不小心升级不应该升级的应用程序。

简单地说,你可以为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各自独立的环境中。

安装与使用virtualenv

安装 virtualenv 很简单:

1 pip install virtualenv

virtualenv安装完毕后,可以通过运行下面的命令来为你的项目创建独立的python环境:

1 virtualenv --distribute nowamagic_venv

OK,成功。上面发生了什么?他创建了文件夹 nowamagic_venv 来存储你的新的独立Python环境。 这个文件夹位于 /root 下面。

我们再来看看输出:

1 New python executable in nowamagic_venv/bin/python2.7
2 Also creating executable in nowamagic_venv/bin/python
3 Installing Setuptools......done.
4 Installing Pip...........done.

--distribute 选项使virtualenv使用新的基于发行版的包管理系统而不是 setuptools 获得的包。 你现在需要知道的就是 --distribute 选项会自动在新的虚拟环境中安装 pip ,这样就不需要手动安装了。 当你成为一个更有经验的Python开发者,你就会明白其中细节。

  • activate:这个virtualenv的激活文件
  • pip:这个virtualenv的独立pip
  • python:python解释器的一个副本
  • lib/python2.7:所有的新包会被存在这

试验一下

通过下面的命令激活这个virtualenv:

1 [[email protected] ~]# cd nowamagic_venv
2 [[email protected] nowamagic_venv]# source bin/activate
3 (nowamagic_venv)[[email protected] nowamagic_venv]#

运行下面的命令可以更好地理解两者的差异,如果已经进入virtualenv请先离开。

1 deactivate  #离开

首先让我们看看如果调用python/pip命令它会调用那一个。

1 [[email protected] ~]# which python
2 /usr/bin/python
1 [[email protected] ~]# which pip
2 /usr/local/bin/pip

再来一次!这次打开virtualenv,然后看看有什么不同。我的机子上显示如下:

1 [[email protected] ~]# which python
2 /root/nowamagic_venv/bin/python
1 [[email protected] ~]# which pip
2 /root/nowamagic_venv/bin/pip

virtualenv拷贝了Python可执行文件的副本,并创建一些有用的脚本和安装了项目需要的软件包,你可以在项目的整个生命周期中安装/升级/删除这些包。 它也修改了一些搜索路径,例如PYTHONPATH,以确保:

  • 当安装包时,它们被安装在当前活动的virtualenv里,而不是系统范围内的Python路径。
  • 当import代码时,virtualenv将优先采取本环境中安装的包,而不是系统Python目录中安装的包。

还有一点比较重要,在默认情况下,所有安装在系统范围内的包对于virtualenv是可见的。 这意味着如果你将simplejson安装在您的系统Python目录中,它会自动提供给所有的virtualenvs使用。 这种行为可以被更改,在创建virtualenv时增加 --no-site-packages 选项的virtualenv就不会读取系统包,如下(这里应该是说的site-packages目录下的包,对于ubuntu12.04,这个目录是空的,所以virtualenv始终不会使用系统Python目录下的第三方包。注:Ubuntu12.04的第三方包入在dist-packages目录下):

1 virtualenv nowamagic_venv --no-site-packages
时间: 2024-10-28 23:01:34

用virtualenv建立多个Python独立开发环境(转)的相关文章

用virtualenv建立多个Python独立开发环境

不同的人喜欢用不同的方式建立各自的开发环境,但在几乎所有的编程社区,总有一个(或一个以上)开发环境让人更容易接受. 使用不同的开发环境虽然没有什么错误,但有些环境设置更容易进行便利的测试,并做一些重复/模板化的任务,使得在每天的日常工作简单并易于维护. 什么是virtualenv? 在Python的开发环境的最常用的方法是使用 virtualenv 包. Virtualenv是一个用来创建独立的Python环境的包.现在,出现了这样的问题:为什么我们需要一个独立的Python环境? 要回答这个问

用virtualenv建立多个Python独立虚拟开发环境

1.安装virtualenv: pip install virtualenv 2.创建一个python的虚拟环境: virtualenv test_demo 用virtualenv创建虚拟环境,是通过复制全局的python解释器,达到环境的互不影响:新建的虚拟环境会自动复制python解释器环境保存到当前路径之下: 3.virtualenv虚拟环境: activate #进入虚拟环境 进入虚拟环境: deactivate #退出虚拟环境 4.指定python版本: virtualenv可以实现两

windows 创建python独立开发环境

参考廖雪峰教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1019273143120480 进去的方式需要修改,找到自己创建的文件目录 在控制台执行 D:\funs\python\myproject\venv\Scripts\activate 发现顺利进入. 当然,也可以直接参考官网的文档-https://virtualenv.pypa.io/en/stable/userguide/ (完) 原文地址:https://www.cnblog

用pyenv和virtualenv搭建单机多版本python虚拟开发环境

作为主流开发语言, 用python 开发的程序越来越多. 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始. 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试一些需要安装在默认python路径里的程序, 反复地修改和安装会使系统目录越来越乱,这对于一些有洁癖的程序员来说是不可接受的. 还有时候我们需要在不同的python版本上开发, 而系统一般只会自带一到两种python版本, 切换起来更是麻烦. 本文将介绍如何利用pyenv 和virtualenv 在

【转】windows和linux中搭建python集成开发环境IDE

http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件Ubuntu / windowsPython 2.7 / python 3Pycharm 2.6.3Openjdk Postgresql 9.1VirtualenvVirtualenvwrapper{开始之前,可以给系统做一下备份.如误安装了Postgresql,出现了大问题就不得不把系统给重装了} 安装python 安装python 1. Ubuntu 12.04系统

转-在Mac OS上搭建Python的开发环境

在Mac OS上搭建Python的开发环境 本文转载自:http://www.jb51.net/article/76931.htm 一. 安装python mac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开发可能就不够了,因此我们需要重新安装python.这里有两种方案安装: 1.homebrew 1 brew install python 这个方案比较简单,如果出错的话可以给前面加sudo试试,这个安装的python可能不是最新版. 2.从官网下载安装大家可以

Python集成开发环境(Eclipse+Pydev)

刚開始学习python,就用Editplus, Notepad++来写小程序, 后来接触了Sublime Text2.认为很不错,没事写写代码.就用编辑器Sublime Text2,最好再配搭一个aptana studio用于调试,很好用. Sublime Text具有美丽的用户界面和强大的功能,比如代码缩略图,Python的插件,代码段等. 还可自己定义键绑定.菜单和工具栏. Sublime Text 的主要功能包含:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切

在windows下用eclipse + pydev插件来配置python的开发环境

一.安装 python 可以到网上下个Windows版的python,官网为:https://www.python.org/downloads/下好后直接安装就ok了.最后记得配置一下环境变量,具体操作如下: 1)在计算机属性的环境变量配置中找到path, 2 )编辑path值,添加你安装的python路径, 3)检验python是否安装配置成功,打开cmd,输入python,如果出现以下界面,则说 明你的python安装成功了 二.安装eclipse插件 装插件的前提是先安装eclipse,e

[零基础学python]集成开发环境(IDE)

当安装好python之后,其实就已经可以进行开发了.下面我们开始写第一行python代码. 值得纪念的时刻:Hello world 如果是用windows,请打开CMD,并执行python. 如果是UNIX类的,就运行shell,并执行python. 都会出现如下内容: Python 2.7.6 (default, Nov 13 2013, 19:24:16) [GCC 4.6.3] on linux2 Type "help", "copyright", "