目录
一. Python环境目录结构
安装python的时候相当于安装了一个全局的环境:
- site-packages目录下是python第三方包(也就是pip install 安装的包都在该目录下)
- 标准库就是原生库(os,sys, math 等等)
- Scripts下是可执行文件(pip install 时就会使用pip.exe这个可执行文件)
- python.exe就是python解释器
二. 虚拟环境
虚拟环境可以看作是原生Python的副本,但是标准库都是一样的,每次都复制不划算。所以每次就不复制标准库,而是直接调用原来的标准库就行。同时解释器也存到Scripts这个目录下,path环境变量只需要增加一个即可。
创建的虚拟环境,进入Lib查看目录结构,发现其无标准库(不需要再复制一遍),但有第三方库site-packages。第三方库中只包含类似pip的少量的包,非常纯净。
以下是Pycharm中我创建的Project_example2虚拟环境的内容。
三. 虚拟环境的重要性
如果一个环境要做很多任务,就需要安装很多第三方包。但是,第三方包与包之间有时候会出现版本不兼容,从而导致不可用;而且包一多时就很难管理一个环境。如果我们将每个任务限定在虚拟环境中操作,只安装这个任务需要的包,那么会大大减少不兼容问题发生的几率。
因此,虚拟环境便于环境隔离。一旦某个环境损坏,可以直接删除,不会影响其它环境的使用。
不同的python解释器,会激活不同的虚拟环境。
四. Pycharm下的虚拟环境
在Pycharm中创建项目时,可以选择已经存在的解释器,也就是选择在哪个虚拟环境下运行。选择哪个虚拟环境的编译器,就只能用那个环境下的包,虚拟环境间的第三方库是不互通的。
如果没有想要的虚拟环境,那么直接在 … 处选择你需要的虚拟环境下的xxx\Scripts\python.exe路径即可。
也可以使用IDE进行新建虚拟环境,具体如下:
从上而下分别是:
- New environment using:选择创建虚拟环境的工具。
- Location:创建的虚拟环境的位置。
- Base interpreter:基于哪个版本的python解释器创建。
- Inherit global site-packages:是否继承base interpreter的第三方库(同命令行中的–site-packages-命令)。
- Make available to all projects:是否别的项目可以用这个虚拟环境编译。