python自带的轻量级虚拟环境venv

Posted ybdesire

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自带的轻量级虚拟环境venv相关的知识,希望对你有一定的参考价值。

1. 引入

python及其各种类库,版本众多,不同项目中版本使用又各有区别,配置起来实在是麻烦多多。使用虚拟环境,可以一定程度上避免一些麻烦。

能用来配置python的虚拟环境的工具,比较知名的,主要是virtualenv和conda。但这都不能跟项目走,比如每个项目建立一个虚拟环境,并且把项目从开发机A移动到开发机B,也不能很方便的把虚拟环境跟着项目一起移动到B。

所以,PEP 405(Python Enhancement Proposals)提出了venv,目的是:

  1. 自带:让python自身就支持虚拟环境,不需要安装第三方库
  2. 隔离:把python binary复制到一个独立的文件夹,与系统目录隔离开
  3. 轻量级:如果将python的整个标准库也做到独享,隔离性会更好,但这样就不够轻量级,也没法做到跨平台。所以venv不复制整个python的标注库

下面介绍venv的原理与用法(以笔者的windows电脑为例说明)。

2. 用法

  1. cd到python项目的文件夹

  2. 运行如下命令,创建项目级的轻量虚拟环境

python -m venv venv

(1)命令的第一个venv,是制定运行venv。第二个venv是指虚拟环境的文件夹的名字,这个可以根据需要来修改
(2)命令执行后,会在当前文件夹中,建立一个venv目录。 在这个venv目录中,会默认放置python.exe、pip.exe等与系统目录隔离的可执行文件

  1. 激活虚拟环境

在windows系统上,激活这个虚拟环境的命令是:

E:\\test_venv\\ml_project>venv\\Scripts\\activate

激活后,就能用python命令来了运行程序,也能用pip来安装第三方库,这些库的安装都是隔离在虚拟环境中的。

  1. 退出虚拟环境

在windows系统上,退出这个虚拟环境的命令是:

venv\\Scripts\\deactivate.bat
  1. 在linux上的用法和windows类似,只是linux下激活venv的命令如下
$ source <venv>/bin/activate

3. 总结

  1. venv是python(3.3以上版本)自带的轻量级虚拟环境
  2. 笔者用3.6做实验,创建出来的venv文件夹,总共只有29M,压缩后10M

参考:

  1. PEP405, https://www.python.org/dev/peps/pep-0405/
  2. venv细节用法/命令介绍,https://docs.python.org/3/library/venv.html

以上是关于python自带的轻量级虚拟环境venv的主要内容,如果未能解决你的问题,请参考以下文章

Python3.5自带venv创建虚拟环境

Python3 venv 创建虚拟环境

Sublimeの虚拟环境(Venv)设置

Python3 工程注意问题汇总

py3 pyvenv(py3自带的虚拟环境工具)odoo12c py3.7 venv环境搭建记录

Win 下 创建 Python 虚拟环境