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工具。

相关推荐
冰糖猕猴桃30 分钟前
【Python】进阶 - 数据结构与算法
开发语言·数据结构·python·算法·时间复杂度、空间复杂度·树、二叉树·堆、图
天水幼麟34 分钟前
python学习笔记(深度学习)
笔记·python·学习
巴里巴气36 分钟前
安装GPU版本的Pytorch
人工智能·pytorch·python
wt_cs1 小时前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
_WndProc1 小时前
【Python】Flask网页
开发语言·python·flask
互联网搬砖老肖1 小时前
Python 中如何使用 Conda 管理版本和创建 Django 项目
python·django·conda
测试者家园2 小时前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai
大模型真好玩2 小时前
准确率飙升!Graph RAG如何利用知识图谱提升RAG答案质量(四)——微软GraphRAG代码实战
人工智能·python·mcp
前端付豪2 小时前
11、打造自己的 CLI 工具:从命令行到桌面效率神器
后端·python
前端付豪2 小时前
12、用类写出更可控、更易扩展的爬虫框架🕷
后端·python