为什么要有Python虚拟环境
当我们在开发机上安装一个 Python 程序或者库的时候,都要安装 1一些包(import非内置的包时),比如说, pip install django。
这些包默认都会安装到 Python 环境的 site-packages 目录下面。
不同的项目可能会用到相同包,的不同版本,或依赖的其他包,这样就没法区分当前项目使用哪个版本,即版本不兼容。
简而言之,虚拟环境就是 Python 环境的一个副本。 不同Python 项目的运行环境。
要得到这么一个副本,首先:
- 要给它单独找个文件夹存起来
- 要给它取个名字
这个文件夹的名字也就是这个虚拟环境的名字,在这个文件夹下面有这些东西:
- 一个 python.exe
- 一个 Scripts 目录
- 一个 Lib 目录
在期望的路径下,使用下面的命令来快速创建一个虚拟环境:
python -m venv venvdemo
会在当前路径下生成一个venvdemo的文件夹,并包含以下内容:
Include
Lib
Scripts
pyvenv.cfg
其中 Include 基本不用管,Lib 目录下也没什么特别的,主要就是 Scripts 目录:
其中多出了 activate 和 deactivate 用来 激活 和 去激活 虚拟环境。
./activate
激活之后,我们就进入了虚拟环境,这时候不管是执行 python 还是 pip 针对的都是虚拟环境里面的。
(其实激活就是把当前虚拟环境下Scripts 目录临时添加到了 PATH 环境变量的第一位,这样也解释了,为啥要把 python.exe 也放到了 Scripts 目录下。这样后续执行python也是首选的当前环境下的python.exe )
同样也注意,不是只有激活才能进入虚拟环境,当我们直接使用当前环境下Scripts 里的python.exe时,启动 python 也是在虚拟环境中了。
大多数的 Python 开发工具都支持虚拟环境的相关操作。指定以虚拟环境中 python.exe 来运行,一旦确定了它的位置,就确定了环境的位置。也就不用每次都去激活。