# python3小白课:虚拟环境介绍和安装 ### 虚拟环境介绍 在本套课程的第1课我就跟大家提到过,如果你所在的公司大多数项目都在使用python2.7,或者你有多个项目需要使用不同版本的三方包时,你使用你喜欢的python版本开发好程序后也无需担心,因为我们有`虚拟环境`,可以轻松让多版本的python以及多版本的三方包(适用于你的项目的)共存。 有许多可用的虚拟环境包供我们选择,我个人比较喜欢用的是`virtualenv`这个,你如果喜欢别的,也可以去学习了解。 过去我还不知道还能弄虚拟环境的时候,曾经电脑里安装了python2.7和python3的版本,这时候调用起来这个环境变量的优先级顺序就颇为麻烦,虽然后来是找到办法来解决共存问题,但我又遇到了新的挑战,那就是包管理。默认情况下,你可以通过`pip list`命令来查看目前已安装的三方包有哪些,我们默认通过`pip install 包名`的方式安装的包都会直接安装在你的系统python下。同一个包,只允许存在一个,比如你安装了这个包的`1.0`版本,你就无法使用`2.0`版本,这在这台电脑只有你自己开发用的情况下还影响不大,无非就是统一用某一个版本开发就好了呗。 > [!question] > > 你要想这样的场景:你的电脑自己平时开发使用的这个包用的是`2.0`版本。有一天你的老板给你布置了一个项目要求你用这个三方包用跟公司项目统一的`1.0`版本,这时候你怎么办?难道跟老板说咱不用1.0好嘛用2.0?或者妥协一下卸载自己装的2.0用1.0? 不必那么麻烦,有了虚拟环境,这些包的安装管理都是独立了,你再也没有这样的烦恼了。 同时,每一个虚拟环境还支持不同的python版本,这样python2.7和python3就可以友好共存了,即时你有个项目需要使用python3.8.2,另一个项目却要求python3.6.6,他们都能互不干扰,和平共处,神奇吧? --- ### 虚拟环境包安装和初始配置 相信大家已经了解了虚拟环境的高效性了,那么其实我们今后推荐你的系统python安装一个主版本,然后日常开发的每个项目都单独弄一个虚拟环境出来(支持不同python版本和独立的包管理列表),这样你将步入专业的开发之流。 一般来讲,我们在win系统推荐将`virtualenv`的扩展包一起安装,使用起来更方便,后续我们将基于它们来讲解。 安装很简单,在cmd运行以下命令安装(如果网络连接失败可以多试几次或者扶墙或者镜像安装): ```powershell pip install virtualenvwrapper-win ``` > [!danger] > > 需要说明的是,目前我的系统python安装的是3.8.2版本,如果你的系统python是2.7版本的,也是支持安装上述包的,然后可以创建python3的任意虚拟环境。 直接安装上述包,它会自动安装`virtualenv`这个依赖包和其他依赖的三方包等,省时省力。 安装后比如我这里显示的包列表如下: ```powershell C:\Users\xueshanlinghu>pip list Package Version --------------------- ------- appdirs 1.4.3 distlib 0.3.0 filelock 3.0.12 pip 20.0.2 setuptools 46.1.3 six 1.14.0 virtualenv 20.0.18 virtualenvwrapper-win 1.2.6 ``` 完成后,我们还需要去`手动`配置一下环境变量,打开系统的环境变量配置。 新建一个变量名为`WORKON_HOME`的系统变量,变量值写你未来想用来存放各个虚拟环境的文件夹,你可以自定义: ![图6-9-1 新建系统环境变量WORKON_HOME](assets/6-9-1.jpg) 完成后确定保存,重启计算机一下。 重启后,打开一个新的cmd窗口。输入命令`workon`,这时就会列举出你在刚才系统环境变量时设定的变量值那个文件夹下的所有虚拟环境了。由于目前我们还没有创建任何一个虚拟环境,所以目前列表为空。 在下一节课我将教会大家虚拟环境的创建、删除、切换激活、取消激活等等高端操作,我们还支持某虚拟环境指定python版本地创建,记得来学习哦~ ### 单词释义 | 单词 | 释义 | | --------------------- | ------------------------------------------------------------ | | virtualenv | virtual虚拟的,env,environment环境的简写 | | virtualenvwrapper-win | 前面部分讲过了,不赘述,wrapper包装纸,封皮,封套,这里理解为封装扩展包,win,windows平台,linux平台对应应安装的包为virtualenvwrapper | | workon_home | work on合并词,向...做工作,我理解为在哪个路径下工作,home家 |