1. python虚拟环境的必要性
这个是老生常谈。引用https://www.jianshu.com/p/0fa03e470147中的描述。
我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有Django 1.10和Django 0.9两套环境呢?这时候我们就可以通过虚拟环境来解决这个问题。
虚拟环境原理介绍:
虚拟环境相当于一个抽屉,在这个抽屉中安装的任何软件包都不会影响到其他抽屉。并且在项目中,我可以指定这个项目的虚拟环境来配合我的项目。比如我们现在有一个项目是基于Django 1.10.x版本,又有一个项目是基于Django 0.9.x的版本,那么这时候就可以创建两个虚拟环境,在这两个虚拟环境中分别安装Django 1.10.x和Django 0.9.x来适配我们的项目。
2. 如何创建和管理python虚拟环境
关于如何在windows下或者linux下用命令创建、激活和管理python虚拟环境都可以很容易在网上查到,不在此赘述。
3. pycharm与python虚拟环境
首先声明,我使用的是pycharm社区版18.1。
3.1 创建项目时配置虚拟环境
pycharm可以很方便地为我们管理虚拟环境。首先在创建一个工程时,会有下面的界面。
其中Location是工程文件夹位置,图中实例是HELLO_WORLD2 ,在下面有project Interpreter: New Virtualenv environment就是配置虚拟环境的地方。
- 如果选择选项New environmrnt则代表创建一个新的虚拟环境。Location 是不需要选择的,自动在工程目录下新建一个venv的文件夹,代表了虚拟环境的位置。创建成功后可以进入该文件夹中看其目录,由 Include、Lib、Scripts三个文件夹组成,Lib文件中的site-packages文件夹就将安装所有的第三方库,python.exe放在Scripts文件中。Base interpreter则代表系统安装的python的位置。下面还有两个选项,"Inherit global site-package"的意思是继承系统python中已安装的第三方库,如果不选的话,我们创建的新环境中是没有任何第三方库的。 "Make available to all projects"意思是将这个虚拟环境应用在所有项目里,一般不选,我觉得选了还不如直接不用虚拟环境呢!
- 如果你选择的是"Existing interpreter"代表的是使用已有的解释器,这个解释器不一定是全局的python,也可以是之前创建的虚拟环境。所以网上有的人说选这里是直接用系统python并不准确。这里根据自身的情况选择想要使用的解释器。
3.2 在工程设置中配置虚拟环境
除了在创建工程时配置外,创建好了之后依旧可以做修改。在文件->设置->项目xxx->Project Interpreter,看到以下界面:
在这个界面下也可以新建或是选择虚拟环境。并且可以看到可以添加项目要使用的第三方库。
总之,使用pycharm可以方便使用python虚拟环境,省去了指令操作,是非常值得推荐的!