本文目录:
[TOC]
虚拟环境简介
VirtualEnv用于在一台机器上创建多个独立的Python虚拟运行环境,多个Python环境相互独立,互不影响,它能够:
- 在没有权限的情况下安装新套件
- 不同应用可以使用不同的套件版本
- 套件升级不影响其他应用
虚拟环境是在Python解释器上的一个私有复制,你可以在一个隔绝的环境下安装packages,不会影响到你系统中全局的Python解释器。
虚拟环境非常有用,因为它可以防止系统出现包管理混乱和版本冲突的问题。为每个应用程序创建一个虚拟环境可以确保应用程序只能访问它们自己使用的包,从而全局解释器只作为一个源且依然整洁干净去更多的虚拟环境。另一个好处是,虚拟环境不需要管理员权限。
安装Virtualenv
大多数Linux发行版都提供一个virtualenv包。例如,Ubuntu用户就可以使用以下命令进行安装:
$ sudo apt-get install python-virtualenv
如果你使用的是Mac OSX,你可以使用 easy_install
安装virtualenv:
$ sudo easy_install virtualenv
如果你使用的是Microsoft Windows或者是任何没有提供官方virtualenv包的操作系统,接下来你会有一个稍微复杂的安装过程。
使用你的web浏览器,导航到 https://bitbucket.org/pypa/setuptools/ ,setuptools安装程序的主页,在"Downloads"栏目找到链接下载一个叫 ez_setup.py
安装程序脚本。保存这个文件到你电脑的临时文件夹中,然后在那个目录下运行以下命令:
$ python ez_setup.py $ easy_install virtualenv
注:前一个命令必须由管理员权限的账户发出。在Microsoft Windows,以管理员身份选项运行命令提示符窗口。在基于Unix的系统中,两个安装命令前面必须加上 sudo
或作为 root
用户执行。一旦安装完毕,virtualenv程序可以通过普通账户执行。
创建虚拟环境
安装好之后,我们就可以使用virtualenv命令创建Python虚拟环境了。这个命令有一个需要的参数:虚拟环境的名称。一个指定名称的文件夹和在里面的、与虚拟环境相关的所有文件会在当前目录下被创建。一般给虚拟环境约定命名为venv:
$ virtualenv venv
New python executable in venv/bin/python2.7
Also creating executable in venv/bin/python
Installing setuptools............done.
Installing pip...............done.
现在你有一个venv文件夹和一个全新的虚拟环境,包含一个私有的Python解释器。使用虚拟环境的时候,你必须“激活”它。如果你是使用bash命令行工具(Linux和Mac OSX用户),你可以使用这个命令激活虚拟环境:
$ source venv/bin/activate
如果你是使用Microsoft Windows,激活命令是:
> venv\Scripts\activate
当虚拟环境被激活了,Python解释器的位置会被添加到 PATH
中,但是这个改动并不是永久的;它只影响当前命令会话。提醒一下,你激活了虚拟环境,该激活命令会将环境的名称包含在命令提示符里面:
(venv)$
当你在虚拟环境中完成工作并想回到全局Python解释器,在命令提示符中输入 deactivate
就可以了。
使用pip安装python包
大多数的Python包是通过 pip
程序安装的,在创建虚拟环境的时候virtualenv会自动添加进去。当一个虚拟环境被激活后,pip程序的位置会被添加到 PATH
中。
注:如果你使用pyvenv创建虚拟环境在Python 3.3中,则必须手动安装pip。安装指令在pip网站上可以找到。在Python 3.4下,pyvenv会自动安装pip。
比如,安装Flask到虚拟环境中,使用下面的命令:
(venv)$ pip install flask
通过这个命令,Flask和它的依赖集都会安装到虚拟环境中。你可以验证Flask是否正确安装通过启动Python解释器并试着导入它:
(venv)$ python
>>> import flask
>>>
如果需要安装的包比较多的时候,这样做会比较繁琐,我们还有一键安装的方法。首先新建一个文本文件,如:requirements.txt,然后将你需要安装的包名保存到该文件中(根据自己的需要),如下:
Babel==1.3
Flask==0.10.1
Flask-Login==0.2.7
Flask-SQLAlchemy==1.0
Flask-WTF==0.9.3
Jinja2==2.7.1
SQLAlchemy==0.8.2
WTForms==1.0.5
Werkzeug==0.9.4
psycopg2==2.5.1
...
最后你只需要输入以下命令,所有需要的包就可以全部安装好了:
(venv)$ pip install -r requirements.txt
如果没有出现错误,祝贺你:安装成功了。
若要查看当前环境安装了哪些包,可以使用下面的命令:
(venv)$ pip freeze