一、什么是虚拟环境
Python 应用经常需要使用一些包第三方包或者模块,有时需要依赖特定的包或者库的版本,所以很难有一个能适应所有 Python 应用的软件环境。甚至有的时候 Python 应用所依赖的版本是冲突的,满足了其中一个,另一个则无法运行,解决这一问题的方法是 虚拟环境。虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利。
二、创建虚拟环境
2.1、virtualenv工具
在 python3.3 之前,只能通过 virtualenv 创建虚拟环境,首先需要安装 virtualenv。
pip install virtualenv
安装完 virtualenv 模块后,我们可以通过如下的方式创建虚拟环境。
virtualenv 虚拟环境名 [--no-site-packages] [--python=python解释器版本]
参数 --no-site-packages
的意思是创建虚拟环境时,不复制主环境中安装的第三方包,也就是创建一个 “干净的” 虚拟环境。
2.2、venv模块
Python3.3 之后,可以用模块 venv 代替 virtualenv 工具,好处是不用单独安装。我们通过如下的方式创建虚拟环境。
python -m venv 虚拟环境名
三、激活虚拟环境
虚拟环境创建好后,需要激活才能在当前命令行中使用。通过 virtualenv 和 模块 venv 创建的虚拟环境,激活方式是一样的,即运行激活脚本 activate。
Windows 系统中,激活脚本路径是 虚拟环境目录\Scripts\activate.bat
,如果是 powershell 命令行,脚本换成 Activate.ps1
。Linux 系统中,激活脚本路径是 虚拟环境目录/bin/activate
,默认脚本没有执行权限,要么设置脚本为可执行,要么用 source
命令执行,$ source myvenv/bin/activate
。
激活虚拟环境后,会在命令行中出现 (虚拟环境名)
,例如:(ee) E:\01>
。
如果我们想关闭虚拟环境,可以执行 deactivate
命令。如果关闭运行虚拟环境的终端,虚拟环境也不将在处于活动状态。