虚拟环境是 Python 解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局 Python 解释器。虚拟环境非常有用,可以在系统的 Python 解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保证全局解释器的干净整洁,使其只作为创建(更多)虚拟环境的源。使用虚拟环境还有个好处,那就是不需要管理员权限。

虚拟环境使用第三方实用工具 virtualenv 创建,在终端中输入以下命令可以检查系统是否安装了 virtualenv

1
virtualenv --version

Ubuntu 用户可以使用下列命令安装它:

1
sudo apt-get install python-virtualenv

如果是 Mac OS X (macOS)系统,就可以使用 easy_install 安装 virtualenv

1
sudo easy_install virtualenv

注意:针对不同版本的 Python,可以使用不同版本的 easy_install,例如针对 Python 3.5,可以使用如下命令:

1
sudo easy_install-3.5 virtualenv

在程序文件夹中使用 virtualenv 命令创建虚拟环境,这个命令只有一个必需的参数,即虚拟环境的名字。创建虚拟环境后,当前文件夹中会出现一个子文件夹,名字就是上述命令中指定的参数,与虚拟环境相关的文件都保存在这个子文件夹中。按照惯例,一般虚拟环境会被命名为 venv

1
virtualenv venv

在程序文件夹中运行以上命令后,该文件夹中就有了一个名为 venv 的子文件夹,它保存一个全新的虚拟环境,其中有一个私有的 Python 解释器。在使用这个虚拟环境之前,你需要先将其“激活”。在 bash 中,可以使用下面的命令激活这个虚拟环境:

1
source venv/bin/activate

虚拟环境被激活后,其中 Python 解释器的路径就被添加进了 PATH 中,但这种改变不是永久性的,它只会影响当前的命令行会话,为了提醒你已经激活了虚拟环境,激活虚拟环境的命令会修改命令行提示符,加入环境名:
(venv) $

当虚拟环境中的工作完成后,如果你想回到全局 Python 解释器中,可以在命令行提示符下输入 deactivate

大多数 Python 包都使用 pip 实用工具安装,使用 virtualenv 创建虚拟环境时会自动安装 pip,激活虚拟环境后,pip 所在路径会自动添加进 PATH。


此文参考《Flask Web 开发》