python虚拟环境(venv)

一、什么是python环境

首先要知道什么是python环境?

Python环境主要包括以下内容:

  1. 解释器 python.exe (python interpreter,使用的哪个解释看环境配置)

  2. Lib目录

  3. 标准库

  4. 第三方库:site-pakages目录,默认安装第三方库所在的目录

  5. Scripts目录,包含一些执行文件

二、什么是虚拟环境

为什么有虚拟环境的说法。思考以下问题:

a,有两个项目A和B,如果A和B都要用到某一模块(库),但是使用的模块(库)版本不相同怎么办?或者一个要使用python2.X,一个使用python 3.X,怎么办?

为了解决上面的问题,python使用了虚拟环境这个概念,可以认为是python环境的多个副本,只是在不同的副本中安装了不同的包。既然叫虚拟环境,总得有点不一样:虚拟环境中一般不包含标准库;不包含python解释器运行时所需的依赖文件;可执行文件全部放于Scripts目录等。

如项目pyworkspace的python虚拟环境,此项目使用的解释器为项目创建的虚拟环境中,路径D:\Document\Workspace\pywokrspace\venv\Scripts下的解释器,不是python环境变量维护的默认解释器。当然也可以调整和更改。

三、虚拟环境的好处

虚拟环境(Virtual Environment)是 Python 中用于隔离项目依赖和开发环境的一种机制。它的作用如下:

项目隔离: 虚拟环境允许您在同一台计算机上创建多个独立的 Python 环境,每个环境都可以具有自己的包和依赖关系。这样可以避免不同项目之间的依赖冲突问题,确保每个项目都有独立、干净的开发环境。

依赖管理: 在虚拟环境中,您可以安装和管理项目所需的特定版本的 Python 包和依赖项。这使得您可以精确地控制每个项目所使用的包版本,避免由于包升级或变更而导致的兼容性问题。

可移植性: 虚拟环境使您的项目更具可移植性。您可以将项目的虚拟环境打包并与项目一起分发,以确保其他人在不同的计算机上能够轻松地重现和运行项目。

环境隔离: 虚拟环境提供了一种隔离的开发环境,您可以在其中安装和测试新的 Python 包和工具,而不会对系统的全局 Python 环境产生影响。这使得您可以更安全地尝试新的软件库或工具,而不会破坏您的系统环境。

总而言之,虚拟环境使得多个项目可以独立地开发和运行,避免了依赖冲突和环境污染问题,提供了更好的可移植性和灵活性。这是 Python 开发中非常有用的工具之一,推荐在项目中使用虚拟环境来管理依赖和环境。

四、常用虚拟环境工具

知道了什么是虚拟环境,就应该清楚如何去管理虚拟环境,这就离不开虚拟环境管理工具,下面列出了一些常用的工具,并在稍后的内容中对部分工具的使用作简单的介绍。

  1. Virtualenv

virtualenv 是非常流行的 python 虚拟环境配置工具。它不仅同时支持 python2 和 python3,还可以为每个虚拟环境指定 python 解释器,并选择不继承基础版本的包。

  1. venv

考虑到虚拟环境的重要性,Python 从3.3 版本开始,自带了一个虚拟环境模块 venv,关于该模块的详细介绍,可参考 PEP-405 。它的很多操作都和 virtualenv 类似。如果你使用的是python3.3之前版本或者是python2,则不能使用该功能,依赖需要利用virtualenv进行虚拟环境管理。 虽然自带该模块,我们也可用不使用该虚拟环境,可用通过interpreter解释权指定虚拟环境。

  1. conda

支持Python、R、Java、JavaScript、C等多种开发语言的包、依赖和环境管理工具,能运行在Windows、MacOS、Linux多个平台,可以在本地轻松创建、保存、切换环境。当安装anaconda时,会自动安装conda工具。

相关推荐
reasonsummer4 小时前
【办公类-04-05】20261030整理手机照片(华为手机助手导出照片到日期文件夹+批量添加四级文件夹+手动转移照片更名+更改三级文件夹合并汉字名称)
python·智能手机
BD_Marathon4 小时前
【Python】初识迭代器
python
gz927cool5 小时前
Python 全栈应用最佳实践完整指南
开发语言·python·ai
智购科技智能售货柜5 小时前
顾客已经关门,视觉售货柜还在处理旧画面:延迟积压怎么查?~YH
python·单片机·嵌入式硬件·物联网·eclipse
梯度下降者5 小时前
Python从0到100(三):Python中的变量介绍
python·作用域·变量·数据类型·计算机常识
AIFQuant5 小时前
Python期货行情API接入:股指、黄金、原油多品种数据管道实战
开发语言·python·金融·区块链·量化开发
威哥爱编程5 小时前
Python 智能体开发实战 07:让它查课表它张口就编?给 Agent 接上真正能动手的工具
python·agent
Wang's Blog5 小时前
Java 项目实战:交友项目 - 即时通信总结:全链路复盘、可复用清单与自检
java·python·交友
2601_962885725 小时前
按主板/科创/创业/北交分板扫描选股
python
威哥爱编程5 小时前
Python 智能体开发实战 08:上线第一天就挂?给 Agent 装上重试、超时和降级三条保险丝
python·agent