1、什么是虚拟环境
在了解python虚拟环境之前,先了解什么是python系统环境,如下图:
Lib文件夹包含了标准库和site-pakages下要安装的包,Scripts放一些可执行文件,python.exe就是python解释器。
虚拟环境就是python系统环境的副本,其中与系统环境不同的是1.虚拟环境可以取自己的名字 2.是没有标准库的,使用的是系统环境的标准库 3.python解释器放在Scripts下,方便环境变量的引用。
2、虚拟环境相关工具区分
- 虚拟环境工具的历史
参考链接:https://www.cnblogs.com/qinhan/p/9293126.html
在python2版本时用virtualenv第三方库实现;在virtualenv基础上进行封装,出现virtualenvwrapper目的是使后者更好用;之后出现了能在windows系统使用的virtualenvwrapper-win。
从python3.3版本开始,自带了venv标准库实现,因为是从 3.3 版本开始自带的,这个工具也仅仅支持 python 3.3 和以后版本。所以,要在 python2 上使用虚拟环境,依然要利用 virtualenv。
3、标准库venv基本使用和原理
- 创建虚拟环境
第一步
python -m venv venvdemo(名称)
在当前文件夹生成venvdemo路径
第二步
cd venvdemo
venvdemo文件夹下有四个文件
第三步
cd scripts
scripts文件夹下除了有pip.exe和python.exe,还有不同操作系统下使用的activate执行文件和deactivate执行文件
其中activate在Linux下使用,activate.bat在windows下cmd中使用,Activate.ps1在powershell中使用,这里在任何环境下激活都用activate命令;deactivate退出激活状态。
第四步
activate
- 虚拟环境原理
进入虚拟环境后打印系统路径
import sys
from pprint import pprint
pprint(sys.path)
在系统环境打印系统路径
虚拟环境与系统环境的不同在于路径的不同:由系统路径可以看出倒数两行分别是根路径和第三方库路径是不同的,而第三行标准库的路径是相同的。
分别打印虚拟环境和系统环境的环境变量
echo %path%
虚拟环境
系统环境
当进入到虚拟环境时,虚拟环境的python解释器的路径切换到第一个,所以首先找到虚拟环境的python解释器。
4、虚拟环境的必要性
在虚拟环境中安装一个包
pip install django
当安装一个包是会连带安装很多包,会发生冲突,所以一般情况下一个项目创建一个虚拟环境。
5、保存和复制虚拟环境
查看当前安装的库
pip list
将安装过的库以requirements的格式输出
pip freeze
pip freeze>requirements.txt
安装requirments.txt中的库
pip install -r requirements.txt