热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python的虚拟环境(venv)是什么?

在Microsoft上面学习python:https:docs.microsoft.comzh-cnwindowspythonget-startedpython-for-web&#

在Microsoft上面学习python:https://docs.microsoft.com/zh-cn/windows/python/get-started/python-for-web,遇到再创建flask和django项目时候都有一个步骤叫做:


创建虚拟环境以安装项目工具:python3 -m venv .venv


那么到底这个虚拟环境是个什么,他是用来干什么的呢?

顾名思义,它是一个虚拟出来的环境。通俗的来讲,这个虚拟的环境可以理解为一个“容器”,在这个容器中,我们可以只安装我们需要的依赖包,而且各个容器之间互相隔离,互不影响。


例如:

我们要学习Django,我们通过这个环境搞一个Django的虚拟环境就好了。
Django也是一个非常流行的web框架。由于Django的迭代更新非常快,也比较频繁,所以有一些过时的东西需要丢弃掉,一些新的东西需要加进来,从而导致不同的版本之间不兼容。比如Django1.3、Django1.4、Django1.8之间就有很大的差异性。或者是说,以Python的版本举例,现在工作中使用的Python版本与Python2.x和Python3.x两种。

假设要进行Python web开发,使用的是Django。手上还有两个老项目A和B需要维护,而新项目C也正在开发中。这里项目A使用的是django1.3,项目B使用的是django1.4,而新项目C使用的是Django1.8。那么问题来了,如何同时在本地进行ABC这三个项目的开发和维护?
正常的模式可能是这样:现在在A项目上有一个BUG需要修复,于是,先删除掉原来的django版本再安装django1.3。
数分钟后,bug修复完毕,好,现在进行新项目C的开发了,然后又要重复上面的故事。
好了,这还是最理想的情况。最不理想的情况就是基于django的第三方依赖也是跟Django版本相关的,于是除了install和uninstall Django之外,还要uninstall和install其依赖,Orz,这特么的就尴尬了...

venv能做什么呢?

VirtualEnv可以搭建虚拟且独立的python运行环境, 使得单个项目的运行环境与其它项目独立起来。同时也可以用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装。

Virtualenv是一个非常好的virtual python environment builder,他最大的好处是,可以让每一个python项目单独使用一个环境,而不会影响python系统环境,也不会影响其他项目的环境。

Virtualenv可用于创建独立的Python环境,在这些环境里面可以选择不同的Python版本或者不同的Packages,并且可以在没有root权限的情况下在环境里安装新套件,互相不会产生任何的影响。


推荐阅读
author-avatar
阿蕓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有