.. _virtual_environment: =================== python虚拟环境 =================== 为什么要使用python虚拟环境? +++++++++++++++++++++++++++++++++++ python的软件通常会依赖于其他的第三方python包,而且很多情况下,不同的软件有不同的依赖需求。 如果sagar以全局的方式安装,则它可能会升级或者降级已有的第三方python库,这将可能导致其他的软件不可用。 相对的,如果在安装了sagar之后又安装了其他的python库或软件,可能打破现有的依赖,这就可能导致sagar不可用。 因此,我们 *强烈* 建议对几种合作使用的软件进行环境独立,以避免软件的不可用。 什么是python虚拟环境? ++++++++++++++++++++++++++++++ 一个特定python的虚拟环境就是一个包含有环境独立的所有python软件和库的文件夹,文件夹内包含了下列内容: * python 可执行文件(executable) * python 标准包(standard packages) * python包管理软件 如 ``pip`` * 一个激活和设置环境变量参数的脚本,用来设置 ``PYTHONPATH`` 和 ``PATH`` 变量 激活环境的脚本确保了新创建的,指定环境文件夹下的python可执行文件在 ``PATH`` 环境变量的开头,以及所有python的软件包都在虚拟环境的文件夹中。 这就使得可以通过建立多个文件夹来独立python的使用环境。 并且,虚拟环境所依赖的文件夹可以在用户的目录下,这就使得用户创建虚拟环境和安装软件时无须去的管理员权限。 创建一个虚拟环境 ++++++++++++++++++++++++++++++ 有多种方式可以用来创建python虚拟环境,在这里,我们选用 ``virtualenv`` ,通过下列命令安装:: $ pip install --user -U virtualenv 一个特定python的虚拟环境就是一个包含有环境独立的所有python软件和库的文件夹。 因此,理论上一个虚拟环境可以创建在任何一个你可以创建文件夹的地方。 比如,你可以在你的家目录下创建管理虚拟环境的文件夹:: $ mkdir ~/.virtualenvs 使用 ``virtualenv`` 命令,你可以创建一个使用python 2.7的环境:: $ virtualenv --python= ~/.virtualenvs/my_env 这将创建一个名为 ``my_env`` 的环境并且自动加载它。 如果你打开一个新的命令行窗口,或者你已经 ``deactivate`` 该独立虚拟环境,你可以通过下列命令重新激活(reactivate)该环境:: $ ~/.virtualenvs/my_env/bin/activate 如果环境激活成功,你将看到命令行提示符出现如下变更,在提示符的开头出现环境的名称:: (my_env) $ 要退出或deactivate当前虚拟环境,或将所有设置退回默认,你只需要运行:: (my_env) $ deactivate