一分钟了解Python虚拟环境

在开始学习了Python的基础知识以后,我们就能够使用Python来写一些简单的小项目了, 但是这个时候我们可能就会遇到一个问题。那就是如果我同时写了两个项目的时候,假设项目A使用Django模块1.9.x版本,而项目B需要使用Django模块2.1.x版本。而我们知道一个系统环境中同时只能安装一个版本,我总不能打开一个项目的时候,就把这个模块卸载再装另外一个版本吧。即使是我不怕麻烦,一个模块可以手动卸载重装,如果遇到多个模块同时冲突的情况呢?这个时候就比较头疼了。

正是这个问题的出现,往Python中引入了虚拟环境的概念。相信现在学习IT知识的同学们 都知道虚拟机的概念,通过在电脑上安装一个虚拟机软件,例如常用的VMware,微软的hyper-v等。就可以在电脑上装一个虚拟的系统,然后这个系统用起来,和在你实际的机器上没有差别。但是这两个系统是完全独立的,你在虚拟机里安装的软件不会影响到实际机器的使用,即使是不同版本的相同软件也不会互相冲突。这就给了程序猿们以启发,可不可以在Python环境里也引入这样一套系统?

经过一番艰苦卓越的努力,在Python中也实现了虚拟环境的概念。在目前所有实现的Python虚拟环境中,基本上都是以开发的项目目录为基本单位,也比较符合实际的使用情况。
当你开始开发一个项目的时候,会创建一个项目的开发目录,然后使用Python实现的虚拟环境管理软件(就像管理虚拟机的vmware软件),例如virtualenv或者pyenv,在当前项目目录激活这个虚拟环境。此时这个目录就和系统中的Python环境完全独立开来,就像是在系统的Python环境中新开了一个“Python虚拟机”,你在这个虚拟环境里安装的任何包都是独立开来的,就像在虚拟机里装了软件一样。因为是隔离开的,也不存在不同版本的相同软件互相干扰的情况。它们的整体结构,就像下面这个图里展示的这样。

可以在系统中创建多个虚拟环境,例如上图里的Python3.6.x、Python3.7.x、 Python2.7.x。虚拟环境中可以根据你自己的项目需要,安装不同的包,这样就可以将不同的项目和对应的Python版本、包模块都隔离开来,互不影响。就可以非常方便地开发自己的项目了。

常用的虚拟环境介绍
目前常用的虚拟环境有virualenv、pyenv、anaconda。
其中virtualenv和anaconda主要是用于windows平台和mac平台,而pyenv主要用于linux 平台和mac平台,目前对于windows系统的支持不是特别好。因此大家可以根据自己的常用系统环境来进行选择。像我们常用的Python开发IDE,例如VSCode、Pycharm等,对虚拟环境也有比较好的支持,因此,当你对这些虚拟环境工具都比较熟悉了以后,在IDE上进行虚拟环境切换也是非常方便的。

虚拟环境的简单使用
在windows中,安装的Python目录下,一般都会带一个venv模块,这个模块是virtualenv 的精简版,像Pycharm里面是有的就是venv的功能,它的简单用法如下:

这就是以当前系统中的Python版本为模板创建一个包含虚拟环境的目录,路径是f:\path\to\project。例如我这里创建一个project目录:

创建完成后,project目录下面会多出几个虚拟环境相关的目录:

如果要启动这个虚拟环境,执行Scripts目录下面的命令脚本:

执行完成后,就会激活虚拟环境,此时命令提示符前面会多出一个(project)提示符,表示这
是一个Python虚拟环境。此时的Python版本虽然和系统版本一致,但是确是一个独立的环境。

如果执行命令完毕后,需要退出虚拟环境,只需要执行deactivate即可,如下所示:

执行完成后,命令提示符前面的(project)提示就会消失,表示回到了正常的虚拟环境。

以上就是venv创建虚拟环境的一个简单演示,如果你对虚拟环境比较感兴趣,想了解更多更强大的功能,好啦!今天的分享到这里就结束了,希望大家持续关注马哥教育官网,每天都会有大量优质内容与大家分享!

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!