29. 虚拟环境

发布时间 2023-09-09 19:34:22作者: 夏冰翎

一、什么是虚拟环境

  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 命令。如果关闭运行虚拟环境的终端,虚拟环境也不将在处于活动状态。