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项目所需要的包.
安装virtualenv
$ pip install virtualenv
测试你的安装:
$ virtualenv --version
使用virtualenv
你可以使用以下命令创建一个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安装.