本文目录:
- 虚拟环境简介
- 安装Virtualenv
- 创建虚拟环境
- 介绍增强版-Virtualenvwrapper
虚拟环境简介
VirtualEnv用于在一台机器上创建多个独立的Python虚拟运行环境,多个Python环境相互独立,互不影响,它能够:
- 在没有权限的情况下安装新套件
- 不同应用可以使用不同的套件版本
- 套件升级不影响其他应用
虚拟环境是在Python解释器上的一个私有复制,你可以在一个隔绝的环境下安装packages,不会影响到你系统中全局的Python解释器。
虚拟环境非常有用,因为它可以防止系统出现包管理混乱和版本冲突的问题。为每个应用程序创建一个虚拟环境可以确保应用程序只能访问它们自己使用的包,从而全局解释器只作为一个源且依然整洁干净去更多的虚拟环境。另一个好处是,虚拟环境不需要管理员权限。
####安装Virtualenv
大多数Linux发行版都提供一个virtualenv包。例如,Ubuntu用户就可以使用以下命令进行安装:
|
|
如果你使用的是Mac OSX,你可以使用 easy_install 安装virtualenv:
|
|
如果你使用的是Microsoft Windows或者是任何没有提供官方virtualenv包的操作系统,接下来你会有一个稍微复杂的安装过程。
使用你的web浏览器,导航到 https://bitbucket.org/pypa/setuptools/ ,setuptools安装程序的主页,在”Downloads”栏目找到链接下载一个叫 ez_setup.py 安装程序脚本。保存这个文件到你电脑的临时文件夹中,然后在那个目录下运行以下命令:
|
|
注:前一个命令必须由管理员权限的账户发出。在Microsoft Windows,以管理员身份选项运行命令提示符窗口。在基于Unix的系统中,两个安装命令前面必须加上 sudo 或作为 root 用户执行。一旦安装完毕,virtualenv程序可以通过普通账户执行。
创建虚拟环境
安装好之后,我们就可以使用virtualenv命令创建Python虚拟环境了。这个命令有一个需要的参数:虚拟环境的名称。一个指定名称的文件夹和在里面的、与虚拟环境相关的所有文件会在当前目录下被创建。一般给虚拟环境约定命名为venv:
|
|
默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages
建立虚拟环境
|
|
现在你有一个venv文件夹和一个全新的虚拟环境,包含一个私有的Python解释器。使用虚拟环境的时候,你必须“激活”它。如果你是使用bash命令行工具(Linux和Mac OSX用户),你可以使用这个命令激活虚拟环境:
|
|
如果你是使用Microsoft Windows,激活命令是:
|
|
当虚拟环境被激活了,Python解释器的位置会被添加到 PATH 中,但是这个改动并不是永久的;它只影响当前命令会话。提醒一下,你激活了虚拟环境,该激活命令会将环境的名称包含在命令提示符里面:
|
|
注意此时命令行会多一个(venv)
,venv为虚拟环境名称,接下来所有模块都只会安装到该目录中去。
当你在虚拟环境中完成工作并想回到全局Python解释器,在命令提示符中输入 deactivate
就可以了。
在虚拟环境安装Python套件
Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:
如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc
文件中加上:
或者让在执行pip的时候让系统自动开启虚拟环境:
Virtualenvwrapper
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
- 将所有虚拟环境整合在一个目录下
- 管理(新增,删除,复制)虚拟环境
- 切换虚拟环境
- …
安装
|
|
此 时还不能使用virtualenvwrapper,需要以下两步:
- 在~/.bashrc中添加行:
source /usr/local/bin/virtualenvwrapper.sh
- 运行:
source ~/.bashrc
此时virtualenvwrapper就可以使用了。并且在~/目录下生成了一个.virtualenv/目录用来存放我们创建的虚拟环境。
- 新建虚拟环境
mkvirtualenv [虚拟环境名称]
|
|
此时在.virtualenvs目录中多出了一个env1目录
列出虚拟环境列表
workon
12(env1)nick@ubuntu:~$ workonenv1也可以使用
lsvirtualenv
- 启动/切换虚拟环境
workon [虚拟环境名称]
- 删除虚拟环境
rmvirtualenv [虚拟环境名称]
- 离开虚拟环境
deactivate