什么是Python虚拟环境?

在这里插入图片描述

视频教程地址:https://www.bilibili.com/video/BV1Zy4y1F7hC/

大家好,这一集我们来介绍一下什么是Python虚假环境。虚拟环境是python基础知识中非常重要的一个知识点。

相信python新手都会遇到过这样的问题,在命令行中下载了某个三方库在pycharm中却依旧显示没有该三方库。或者是conda prompt下载了某个三方库在pycharm中却依旧显示没有该三方库。等等操作,其实都是因为大家对于虚拟环境没有一个清晰的认识。

这里我们先给出一个简单的验证办法,就是运行下面这行代码。他会输出你当前使用的解释器的路径,你的两个程序的结果不一样就说明你用的肯定是不同的环境。

python -c "import sys; print(sys.executable)"

首先用两句话总结一下什么是虚拟环境:

● Python的虚拟环境是一种用于隔离和管理Python项目和依赖项的工具。
● 它允许你在同一台计算机上创建多个独立的Python环境,并在这些环境中安装和运行不同版本的Python解释器以及项目所需的库和依赖项。

那么我们为什么要使用虚拟环境呢?

我们需要知道的是,我们最开始从官方网站下载了一个python解释器并且将路径添加到了环境变量,这个时候我们就可以使用这个解释器了,但这只是一个版本的python解释器。

假设现在我们有两个项目,一个要使用1.0版本的a依赖,一个要使用1.1版本的a依赖,那你怎么办?

再假设一个项目要使用python3.8,一个要使用3.11,那你怎末解决?总不能说运行一个项目就重装一下解释器,再重新下载一下三方库吧。

在现实中,我们会有很多项目,每个项目可能都有自己需要的python解释器版本,或者是三方库的版本,这个时候虚拟环境的作用就体现出来了。

虚拟环境就是为每个项目创建自己的独立环境,环境中有着该项目需要的版本的解释器和需要的版本的库和依赖项,并且多个环境之间不会相互冲突。

这对于开发多个项目,或者在同一项目中使用不同版本的库非常有用。

这样一来,你可以轻松地管理项目所需的库和依赖项,不用担心会影响其他项目。

在Python中,有多个工具可用于创建和管理虚拟环境,包括virtualenv和conda等。

● venv是Python 3自带的标准库,它提供了创建和管理虚拟环境的功能
● virtualenv是一个流行的第三方工具,可以用于Python 2和Python 3
● conda是一个跨平台的包管理器,可以管理Python以及其他语言的虚拟环境和依赖项。

总的来说,虚拟环境提供了一种有效、可隔离和可管理的方式来处理Python项目的依赖项,确保项目的环境一致性和独立性。

它们提供了更安全方便的环境,使得多个项目和不同的Python版本能够和谐共存。使用虚拟环境也是一种良好的开发实践,可以提高开发效率并减少不必要的问题。

你可以根据自己的需求选择适合的工具来创建和管理虚拟环境。

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

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

相关文章

网络-WebSocket

文章目录 前言一、WebSocket简介应用场景原理 二、使用心跳监测广播消息 三、群聊demo总结 前言 本文主要记录WebSocket的简单介绍和使用,完成群聊的demo 一、WebSocket简介 WebSocket是一种通信协议,它通过单个TCP连接提供全双工的通信通道。 它允许客…

ARM:使用汇编完成三个灯流水亮灭

1.汇编源代码 .text .global _start _start: 设置GPIOF寄存器的时钟使能LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0x1<<5)STR R1,[R0]设置GPIOE寄存器的时钟使能LDR R0,0X50000A28LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<4) 第4位设…

18基于matlab的二阶动态系统的滑膜控制,程序已调通,可直接运行。标价为程序价格,不包含售后。程序保证可直接运行。

基于matlab的二阶动态系统的滑膜控制&#xff0c;程序已调通&#xff0c;可直接运行。标价为程序价格&#xff0c;不包含售后。程序保证可直接运行。 18matlab滑膜控制 (xiaohongshu.com)

学习记忆——数学篇——案例——代数——方程——一元二次方程

重点记忆法 a x 2 b x c 0 ax^2bxc0 ax2bxc0 整体可以由&#xff1a; 根&#xff08;多少&#xff0c;正负&#xff0c;区间&#xff09; ⟹ \Longrightarrow ⟹ △ △ △ ⟹ \Longrightarrow ⟹ 求根公式 x 1 , 2 x_{1,2} x1,2​ − b △ 2 a \frac{-b\sqrt{△}}{2a} 2…

【Unity】【VR】如何让Distance Grab抓取物品时限制物品的Rotation

【背景】 遇到这样的场景,希望抓取Canvas时,Canvas不会沿Z轴旋转。 【问题】 发现Freeze Canvas的Rigid Body没有用。 【分析】 应该是RigidBody的限制仅在物理互动下生效,抓取可能不属于物理互动(比如碰撞),所以不生效。 【思路】 还是得写脚本挂载在Interacta…

Hadoop分布式集群搭建教程

目录 前言环境准备一、创建虚拟机二、虚拟机网络配置三、克隆虚拟机四、Linux系统配置五、Hadoop的部署配置六、Hadoop集群的启动 前言 大数据课程需要搭建Hadoop分布式集群&#xff0c;在这里记录一下搭建过程 环境准备 搭建Haoop分布式集群所需环境&#xff1a; VMware&a…

lv8 嵌入式开发-网络编程开发 16 多路复用poll函数

目录 1 多路复用的多种实现方式 2 poll 2.1 poll 函数应用 3 epoll 函数族&#xff08;效率最高&#xff09; 3.1 epoll_create 创建epoll句柄 3.2 epoll_ctl epoll句柄控制接口 3.3 epoll_wait 等待 epoll 文件描述符上的 I/O 事件 3.4 epoll 函数应用 1 多路复用的多…

sqoop 脚本密码管理

1&#xff1a;背景 生产上很多sqoop脚本的密码都是铭文&#xff0c;很不安全&#xff0c;找了一些帖子&#xff0c;自己尝试了下&#xff0c;记录下细节&#xff0c;使用的方式是将密码存在hdfs上然后在脚本里用别名来替代。 2&#xff1a;正文 第一步&#xff1a;创建密码对…

【数据结构-队列 二】【单调队列】滑动窗口最大值

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【单调队列】&#xff0c;使用【队列】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

【大数据】hadoop安装部署(学习笔记)

一、集群组成概述 Hadoop集群包括两个集群&#xff1a;HDFS集群、YARN集群 两个集群逻辑上分离、通常物理上在一起 两个集群都是标准的主从架构集群 HDFS集群&#xff08;分布式存储&#xff09;&#xff1a; 主角色&#xff1a;NameNode从角色&#xff1a;DataNode主角色…

【JQuery插件】手把手教你如何白瓢一个网站的全部付费资源!前端狂喜

视频讲解地址&#xff1a;https://www.bilibili.com/video/BV1bm4y157GF/ 网站地址&#xff1a;https://www.jq22.com/ 大家好&#xff0c;这一集给大家分享一个好用的JQuery插件网站&#xff0c;当然&#xff0c;更主要的是教大家如何白瓢这个网站上的资源&#xff0c;这个网…

深度学习自学笔记十三:unet网络详解和环境配置

一、unet网络详解 UNet&#xff08;全名为 U-Net&#xff09;是一种深度学习架构&#xff0c;最初由Olaf Ronneberger、Philipp Fischer和Thomas Brox于2015年提出&#xff0c;用于图像分割任务。该网络的名称来源于其U形状的架构&#xff0c;该架构使得网络在编码和解码过程中…