Python虚拟环境 |介绍
虚拟环境是一种工具,它通过为不同项目创建隔离的Python虚拟环境来帮助保持不同项目所需的依赖关系。这是大多数Python开发人员使用的最重要的工具之一。
为什么我们需要虚拟环境?
想象一个场景,您正在处理两个基于 Web 的Python项目,其中一个使用 Django 1.9,另一个使用 Django 1.10,依此类推。在这种情况下,虚拟环境对于维护两个项目的依赖关系非常有用。
何时何地使用虚拟环境?
默认情况下,系统上的每个项目都将使用这些相同的目录来存储和检索站点包(第三方库)。这有什么关系?现在,在上面的两个项目示例中,您有两个版本的 Django。这对Python来说是一个真正的问题,因为它无法区分“site-packages”目录中的版本。因此 v1.9 和 v1.10 都将驻留在同名的同一个目录中。这就是虚拟环境发挥作用的地方。为了解决这个问题,我们只需要为两个项目创建两个独立的虚拟环境。这样做的好处是你可以拥有的环境数量没有限制,因为它们只是包含一些脚本的目录。
每当您处理任何基于Python的项目时,都应该使用虚拟环境。为您从事的每个基于Python的项目拥有一个新的虚拟环境通常是件好事。因此,每个项目的依赖关系都与系统和彼此隔离。
虚拟环境如何工作?
我们使用一个名为virtualenv的模块,它是一个创建隔离Python环境的工具。 virtualenv 创建一个文件夹,其中包含所有必要的可执行文件,以使用Python项目所需的包。
安装虚拟环境
$ pip install virtualenv
测试您的安装:
$ virtualenv --version
使用虚拟环境
您可以使用以下命令创建 virtualenv:
$ virtualenv my_name
运行此命令后,将创建一个名为 my_name 的目录。这是包含所有必要的可执行文件的目录,以使用Python项目所需的包。这是安装Python包的地方。
如果您想指定您选择的Python解释器,例如Python 3,可以使用以下命令完成:
$ virtualenv -p /usr/bin/python3 virtualenv_name
要创建Python 2.7 虚拟环境,请使用以下命令:
$ virtualenv -p /usr/bin/python2.7 virtualenv_name
现在创建虚拟环境后,您需要激活它。记住每次在项目上工作时都要激活相关的虚拟环境。这可以使用以下命令完成:
$ source virtualenv_name/bin/activate
激活虚拟环境后,您的虚拟环境名称将出现在终端左侧。这将使您知道虚拟环境当前处于活动状态。在下图中,名为 venv 的虚拟环境处于活动状态。
现在您可以在此虚拟环境中安装与项目相关的依赖项。例如,如果您将 Django 1.9 用于项目,则可以像安装其他软件包一样安装它。
(virtualenv_name)$ pip install Django==1.9
Django 1.9 包将放置在 virtualenv_name 文件夹中,并将与整个系统隔离。
完成工作后,您可以通过以下命令停用虚拟环境:
(virtualenv_name)$ deactivate
现在您将回到系统的默认Python安装。