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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/136159.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用无代码搭建数据中台,竟做到如此丝滑

文章目录 需求背景系统介绍配置说明1 菜单导航2 系统自带组件导入页面(1)数据集成相关组件(2)数据服务相关组件 3 由系统组件路径添加页面(1)数据资产管理(2)数据标准管理&#xff0…

VMware Fusion 13+Ubuntu ARM Server 22.04.3在M2芯片的Mac上共享文件夹

因为Server版没有桌面,VMware Tools不能直接装,导致没办法共享文件。 Ubuntu中的包如果需要更新,先执行下面的步骤 sudo apt update 再执行 sudo apt upgrade 不需要更新的话,直接执行下面的步骤 先把open-vm-tools卸载了 …

typescript 高级类型-class类详解

class 简介 typescript 全面支持es2015中引入的class关键字,并为其添加了类型注解,和其它语法(比如,可见性修饰符等), class 基本使用,如下 tips 1. 根据ts中的类型推论,可以知道Person的实例对象p的类型是Person 2. ts中的class,不仅提供了class的语法功能,也作为一种类型存…

【云计算】虚拟私有云 VPC

虚拟私有云 VPC 1.前言1.1 基本介绍1.2 VPC 的作用1.3 VPC 的适用人群 2.VPC 基本概念2.1 VPC 相关基本概念2.2 其他相关基本概念 3.VPC 通信场景3.1 VPC 内部互通3.2 VPC 间互通3.2.1 对等连接3.2.2 Transit Gateway 或者云联网 3.3 访问 Internet3.3.1 Internet 网关3.3.2 NA…

阿里云服务器价格更新,轻量应用服务器108元,云服务器182.04元起

阿里云服务器价格更新了,不同时期阿里云服务器的租用价格不同,目前阿里云在官网活动中新增加了一款经济型e实例规格的云服务器,现在购买阿里云轻量应用服务器最低为108元,购买云服务器最低为182.04元,换算到每天只要0.…

2023.9.8 基于传输层协议 UDP 和 TCP 编写网络通信程序

目录 UDP 基于 UDP 编写网络通信程序 服务器代码 客户端代码 TCP 基于 TCP 编写网络通信程序 服务器代码 客户端代码 IDEA 打开 支持多客户端模式 UDP 特点: 无连接性:发送端和接收端不需要建立连接也可相互通信,且每个 UDP 数据包都…

自定义实现:头像上传View

看看效果: 非常简单:代码直接贴在下面,有需要的直接带走 /*** 带有自定义字体TextView。*/ class EditAvatarUploadView : AppCompatTextView {lateinit var paint:Paintconstructor(context: Context) : this(context, null){iniPaint()}con…

字符串函数和内存函数详解(1)

🐵本文将通过函数原型、用法、模拟实现等多个方面全面讲解字符串的库函数 1.strlen📚 1.1函数用法📗 strlen函数用来计算字符串的长度,它会从接收到字符的地址开始读取直到遇到\0,每读取一个非\0的字符长度1&#xff…

Harmony Codelab 样例—弹窗基本使用

一、介绍 本篇 Codelab 主要基于 dialog 和 button 组件,实现弹窗的几种自定义效果,具体效果有: 1. 警告弹窗,点击确认按钮弹窗关闭。 2. 确认弹窗,点击取消按钮或确认按钮,触发对应操作。 3. 加载…

Java基于SpringBoot的在线考试系统的研究与实现(附源码,教程)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 第一章第二章.主要技术第三章第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数…

数据变换:数据挖掘的准备工作之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

《Python趣味工具》——自制emoji3

今日目标 在上次,我们绘制了静态的emoji图。并且总结了turtle中的常用函数。 本次我们将尝试制作一个动态的emoji,让你的表情包动起来! 文章目录 一、动画原理:二、制作动画:1. 修改eyes_black()函数:2. 绘…

软考和PMP哪个含金量更高?

软考中,能和pmp一起来比较的是软考高项,软考高级信息系统项目管理师,和PMP的共同点,基本来说都是项目管理类的证书。本质也都是适用于项目经理岗位的证书,软考高项中大部分考试内容是PMPIT技术两部分,其中项…

【STL容器】list

文章目录 一、list定义二、list的迭代器三、list的元素操作四&#xff0c;list的优缺点 一、list定义 list本质是一个双向带头循环链表 template<class T> struct list_node {list_node* prev;T val;list_node* next; };template<class T> class list {typedef lis…

如何打造可视化警务巡防通信解决方案

近年来&#xff0c;科学技术飞速发展&#xff0c;给予了犯罪分子可乘之机。当面临专业化的犯罪分子、高科技的犯罪手段&#xff0c;传统警务模式似乎不能满足警方打击犯罪的需要&#xff0c;因此当今公安工作迫切需要构建智能化、系统化、信息化的警务通信管理模式。 警务人员…

python 第一次作业

1.使用turtle换一个五环 2.设计这样一个程序&#xff1a;输入一个数字 判断它是不是一个质数 使用turtle换一个五环&#xff1a; >>> import turtle #导入模块 >>> turtle.width(10) #设置圆圈宽度 >>> turtle.color("blue&qu…

JDK10特性

文章目录 JAVA10概述语法层次的变化局部变量的类型推断不能使用类型推断的场景变量的声明初始值nulllambda表达式方法引用为数组静态初始化成员变量不能使用其他不可以的场景 API层次的变化集合的copyOf方法 总结 JAVA10概述 2018年3月21日&#xff0c;Oracle官方宣布JAVA10正…

HTML整站规划与规范

文章目录 命名规则命名命名书写 包含样式规范样式重置样式引入页面结构页面宽度页面高度与背景页面设计 网址图标 命名规则 命名 根据每块元素的主题、功能、页面上的位置命名&#xff0c;便于后期更改与维护。 另外&#xff1a;如果所有样式放在同一文件下&#xff0c;可以给…

BUUCTF:[GYCTF2020]FlaskApp

Flask的网站&#xff0c;这里的功能是Base64编码解码&#xff0c;并输出 并且是存在SSTI的 /hint 提示PIN码 既然提示PIN&#xff0c;那应该是开启了Debug模式的&#xff0c;解密栏那里随便输入点什么报错看看&#xff0c;直接报错了&#xff0c;并且该Flask开启了Debug模式&am…

qt自定义可删除标签控件、自适应布局

自定义标签&#xff0c;支持删除、设置/获取数据、自适应布局操作。 如图&#xff0c;可点击删除按钮操作、拖拽窗口自适应&#xff1b; 代码参考