Python虚拟环境Venv

当你的项目比较复杂,对模块版本要求不一时,不需要安装多个 Python,只需要配置虚拟环境即可。提起虚拟环境,很多人都会想到 virtualenv,实际上从 Python3.3 版本开始内置了 venv模块 用以建立轻量级的虚拟环境。

我这里的演示环境为 Win10,使用的终端为 PowerShell ,其他环境在某些步骤上会有些细微差别,如果你的环境和我不一致,请对照官方文档。使用方法也很简单:

需要注意的是, Python3.3 venv 生成的环境并不带 pip ,需要自行安装,在之后的版本 Python3.4中修复了这一缺陷,可以完全的替代 virtualenv。

python -m venv env

这条命令会在 5 秒内执行完毕,在当前目录下生成了个文件夹 env ,其中包含着我们生成虚拟环境文件,文件夹内包含了下列文件或文件夹:

Mode LastWriteTime Length Name
—- ————- —— —-
d—– 2017-10-26 22:08 Include
d—– 2017-10-26 22:09 Lib
d—– 2017-10-26 22:09 Scripts
-a—- 2017-10-26 22:08 98 pyvenv.cfg

在 Scripts 生成了一系列的镜像版 Python,以至于你可以使用下列命令来安装模块,运行 Python 程序,无需激活环境,而 Window 系统默认禁止 PowerShell 运行 ps1 脚本,所以也可以直接使用“镜像版 Python”。在 PowerShell 下运行下列命令安装模块,运行 Python 程序,首先需要确定你已经在创建虚拟环境的目录下。

.\Scripts\pip.exe install package_name
.\Scripts\python.exe test.py

我们可以尝试激活当前的虚拟环境,也可以退出当前虚拟环境:

.\Scripts\Activate.ps1
deactivate

啊哦~下面出现了报错,原来 WIN10 为了安全,默认安全策略为 RESTRICTED ,此安全策略下允许单独的命令,但不允许运行脚本,并且会阻止所有脚本文件的运行。这里我们把安全策略调整为 REMOTESIGNED ,使得我们可以运行本地编写的脚本,而来自互联网下载的脚本则要求拥有受信任的发布者的数字签名,关于安全策略的更多信息,可以查看 微软官方文档

调整安全策略需要我们打开一个具有管理员权限的 PowerShell ,执行下列命令:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

这样我们就为当前用户设置了 REMOTESIGNED 安全策略,再次激活一下虚拟环境试试,是不是成功了~

当激活虚拟环境时,可以直接使用 pip 命令安装第三方模块,自动安装到当前虚拟环境中,并且由于每个虚拟环境都有自己的 Python 二进制文件(这允许创建不同Python版本的虚拟环境),你也可以直接执行生成的二进制文件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注