python虚拟环境

为什么要使用python虚拟环境?

python的软件通常会依赖于其他的第三方python包,而且很多情况下,不同的软件有不同的依赖需求。 如果sagar以全局的方式安装,则它可能会升级或者降级已有的第三方python库,这将可能导致其他的软件不可用。 相对的,如果在安装了sagar之后又安装了其他的python库或软件,可能打破现有的依赖,这就可能导致sagar不可用。

因此,我们 强烈 建议对几种合作使用的软件进行环境独立,以避免软件的不可用。

什么是python虚拟环境?

一个特定python的虚拟环境就是一个包含有环境独立的所有python软件和库的文件夹,文件夹内包含了下列内容:

  • python 可执行文件(executable)
  • python 标准包(standard packages)
  • python包管理软件 如 pip
  • 一个激活和设置环境变量参数的脚本,用来设置 PYTHONPATHPATH 变量

激活环境的脚本确保了新创建的,指定环境文件夹下的python可执行文件在 PATH 环境变量的开头,以及所有python的软件包都在虚拟环境的文件夹中。 这就使得可以通过建立多个文件夹来独立python的使用环境。

并且,虚拟环境所依赖的文件夹可以在用户的目录下,这就使得用户创建虚拟环境和安装软件时无须去的管理员权限。

创建一个虚拟环境

有多种方式可以用来创建python虚拟环境,在这里,我们选用 virtualenv ,通过下列命令安装:

$ pip install --user -U virtualenv

一个特定python的虚拟环境就是一个包含有环境独立的所有python软件和库的文件夹。 因此,理论上一个虚拟环境可以创建在任何一个你可以创建文件夹的地方。 比如,你可以在你的家目录下创建管理虚拟环境的文件夹:

$ mkdir ~/.virtualenvs

使用 virtualenv 命令,你可以创建一个使用python 2.7的环境:

$ virtualenv --python=<path/to/python2.7> ~/.virtualenvs/my_env

这将创建一个名为 my_env 的环境并且自动加载它。 如果你打开一个新的命令行窗口,或者你已经 deactivate 该独立虚拟环境,你可以通过下列命令重新激活(reactivate)该环境:

$ ~/.virtualenvs/my_env/bin/activate

如果环境激活成功,你将看到命令行提示符出现如下变更,在提示符的开头出现环境的名称:

(my_env) $

要退出或deactivate当前虚拟环境,或将所有设置退回默认,你只需要运行:

(my_env) $ deactivate