本文字数:2678 字
阅读本文大概需要:7 分钟
写在之前
在上一篇文章
安装的 Python 版本太多互相干扰?以后再也不用担心了。
中我给大家介绍了一个 Python 版本的管理工具「pyenv」,可以很容易的安装不同的 Python 版本,进行全局的 Python 版本切换。就这么开开心心的解决了 Python 版本冲突的问题以后,又突然出现了一个新的问题摆上了桌面:假如你手里有两个项目,其中一个项目要求使用 django 1.5 这个版本,但是另外一个项目却要求使用 django 2.0 这个版本,该怎么办呢?
显然此时如果全局安装 django,肯定是无法满足我们的这个需求。全局安装就安装一个版本,我总不能用另一个的时候把当前这个版本卸掉吧,这样的话那真是就麻烦到家了,这时候我又想到了 Python 的简洁优雅,省心省力,这个问题肯定有解,果不其然,又被我给找到了,这就是我今天要给大家说的「virtualenv」。
「virtualenv」本身就是一个独立的工具,用来隔离不同项目的工作环境。因为上一篇文章所讲的「pyenv」也是用来隔离的,所以很多人容易把这两个搞混,所以在这里我先来说一下两者之间的区别。
区别
「pyenv」是用来管理不用版本的 Python,例如你做某个项目的时候需要用的是 Python 2.7.1 这个版本,但是呢你又想与时俱进,学习一下 Python3,这个时候你就可以用 pyenv 来管理这两个不同版本的 Python。
「virtualenv」是用来隔离不同项目的工作环境,例如你手里的两个项目,用到的都是 Python 2.7.1,但是呢,其中一个项目需要使用 django 1.5,而另一个项目则需要使用 django 2.0,这个时候 virtualenv 横空出世,解决这个问题。
可能到这敏锐的你已经发现,我们只需要把「pyenv」和「virtualenv」这俩工具组合起来,就能够让任意版本的 Python 和 任意版本的第三方库随意组合,这种随意组合保持着很高的灵活性,同时也避免了不同项目之间可能发生的工作环境的冲突。
我在上面说过「virtualenv」是一个独立的工具,我们可以直接使用它。但是鉴于上一篇文章我们学习了 pyenv,本着学以致用,我们还是用 pyenv,我假设你已经学习了上一篇文章,系统中已经有了 pyenv,此时只需要安装 pyenv-virtualenv 这个插件即可。
安装 pyenv-virtualenv
安装 pyenv-virtualenv,手动安装和我们之前安装 pyenv 是一样的,从 GitHub 直接下载到本地,首先执行下面的命令:
安装的过程如下所示:
我们可以看到上面已经安装成功,接下来我们要添加一下环境变量:
环境变量配置成功,接下来我们要重新载入一下配置文件,在这里我们是直接推出以后重新登陆:
就这样,「pyenv-virtualenv」就安装完成了。同样我们可以通过命令行来验证一下它是否安装成功:
显示的结果如下所示:
pyenv-virtualenv 的使用
pyenv-virtualenv 安装成功以后,我们就可以给同一个 Python 创建不同的虚拟环境,比如像下面这样创建两个新的虚拟环境:
我们可以用如下命令来查看已经创建好的虚拟环境:
显示如下:
创建完上述的虚拟环境以后,我们就可以通过命令行来操作它,比如进入(activate)或者退出(deactivate)虚拟环境。当我们进入到虚拟环境的时候,左边会提示我们当前所在的环境,因为有时候我们的本地可能建了很多个虚拟环境,有提示的话可以防止你记错当前你进入的环境,人性化的一批,如下所示:
上述意思是说进入到 project1 的虚拟环境。
进入到 project1 的虚拟环境后,安装了 django 1.5 这个版本,然后退出 project1 这个虚拟环境。
当然还是能装就能删,如果你看哪个环境不顺眼,想要删掉它,就用下面的命令:
领取专属 10元无门槛券
私享最新 技术干货