[Python系列] Python虚拟环境Virtualenv

news2024/11/27 9:39:57

1. 什么是Virtualenv

        Python virtualenv 是一个用于创建和管理虚拟环境的工具。它可以帮助开发者在不同的项目中使用不同的 Python 版本和包,而不会相互干扰。使用 virtualenv,可以轻松地创建一个独立的 Python 环境,在其中安装所需的包和版本,而不会影响系统中已经安装的其他 Python 环境和包。
virtualenv 使用了一个名为 virtualenv 的命令行工具来创建和管理虚拟环境。

2. 为什么要使用Virtualenv

        首先,使用 virtualenv 的主要原因是为了解决 Python 环境中的多个项目依赖不同版本和包的问题。在没有使用 virtualenv 的情况下,如果多个项目依赖不同的 Python 版本或包,则可能会导致依赖冲突,从而导致项目无法正常运行。
        其次,使用 virtualenv 可以为每个项目创建一个独立的 Python 环境,在其中安装所需的版本和包,而不会影响其他项目。这使得多个项目可以同时运行,而不会相互干扰。

        再次,使用 virtualenv 还可以避免在系统中安装多个 Python 版本和包,从而保持系统环境的简洁和稳定。
        总结起来,使用 virtualenv 可以提高开发效率和项目稳定性,避免依赖冲突和环境混乱的问题。

3. 怎么使用virtualenv

(1)安装virtualenv

        一般来讲,我们都使用pip来安装virtualenv,这样可以方便很多。(前提条件是python以及pip已经安装成功),执行下面命令:

pip install virtualenv

这时候pip就会自动下载并安装virtualenv了,我们可以通过下面的命令来查看是否安装成功:

virtualenv --version

出现如下图所示的版本提示信息,则说明virtualenv已经安装成功 

 

(2)使用virtualenv 

首先,我们先使用以下命令来创建一个虚拟环境:

//virtualenv <env_name>  

virtualenv venv

然后,会在当前文件夹下看到一个venv文件夹,这个就是我们所创建的虚拟环境。我们可以通过以下指令来进入到当前的环境中。

  source vent/bin/activate

结果如下图所示,我们已经进入到了虚拟环境 

 我们可以执行一些操作,比如在虚拟环境中使用pip来安装依赖包:

pip install numpy

也可以在Python环境下运行代码:

python main.py   //print("Hello World")

可以通过如下指令退出虚拟环境

deactivate

下图为退出成功 

 当已经不需要当前环境的时候,我们直接删掉就行了。

rm -rf venv 

4. 原理

        Virtualenv 的原理是基于 Python 的模块化机制。Python 是一个模块化语言,这意味着每个 Python 模块都可以作为一个独立的文件存在,并在运行时动态加载。Virtualenv 利用了这个特性,将虚拟环境中的 Python 解释器和包作为一个个模块加载到计算机上。
        当使用 Virtualenv 创建一个新的虚拟环境时,它会在计算机上创建一个名为 venv 的文件夹,其中包含了 Python 解释器和 pip 工具。然后,Virtualenv 会将该环境中所需的包和版本安装到 venv 文件夹中。这样,每个虚拟环境就成为了一个独立的 Python 环境,其中包含了所需的包和版本,而不会与其他环境发生冲突。
        总结起来,Virtualenv 的原理是基于 Python 的模块化机制,通过创建一个独立的 Python 环境来实现虚拟化。这使得开发者可以为每个项目创建一个独立的环境,从而避免依赖冲突,提高开发效率。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络】思科网络vlan配置+单臂路由

文章目录 前言一、vlan&#xff08;虚拟局域网&#xff09;二、配置vlan配置交换机0配置交换机1&#xff08;和交换机0相同&#xff09;配置计算机&#xff1a;测试联通性 三、单臂路由配置R0配置交换机1测试配置&#xff1a; 前言 VLAN&#xff08;Virtual Local Area Networ…

力扣 491. 递增子序列

题目来源&#xff1a;https://leetcode.cn/problems/non-decreasing-subsequences/description/ 回溯三部曲&#xff08;来源代码随想录&#xff09;&#xff1a; 递归函数参数&#xff1a;求子序列&#xff0c;很明显一个元素不能重复使用&#xff0c;所以需要startIndex&…

2023年 vue使用腾讯地图搜索、关键字输入提示、地点显示

先看结果 vue 在public文件下的index.html文件中引入&#xff1a; <script src"//map.qq.com/api/js?v2.exp&key你自己的key"></script><script src"https://map.qq.com/api/gljs?v1.exp&librariesservice&key你自己的key"&…

【保姆级教程】PyCharm通过SSH远程连接ModelArts

文章目录 一、创建Notebook二、配置SSH三、配置远程Python解释器四、成果展示 一、创建Notebook 首先&#xff0c;找到云资源下面的 ModelArts&#xff0c;然后点击并进入 ModelArts控制台。 在ModelArts控制台中&#xff0c;点击开发环境下的 Notebook 。然后点击创建&#x…

记录一次Nginx日志偶现499的排查

背景 查看到nginx日志在整点整分的时候频繁出现 499&#xff0c;因为配置了存活检查和就绪检查&#xff0c;担心业务会出现大面积重建导致现网故障&#xff0c;所以对出现499的原因进行排查&#xff0c;记录下排查思路&#xff0c;方便以后查看。 业务链路&#xff1a; 负载均…

B/S版手术麻醉系统源码,基于php、mysql和vue2开发

手术麻醉系统是一套以数字形式与医院信息系统&#xff08;如HIS、EMR、LIS、PACS等&#xff09;和医疗设备等软、硬件集成并获取围手术期相关信息的计算机系统&#xff0c;其核心是对围手术期患者信息自动采集、储存、分析并呈现。该系统通过整合围手术期中病人信息、人员信息、…

Packet Tracer – 研究 NAT 操作

Packet Tracer – 研究 NAT 操作 目标 第 1 部分&#xff1a;通过内联网研究 NAT 操作 第 2 部分&#xff1a;研究互联网中的 NAT 操作 第 3 部分&#xff1a;执行进一步研究 拓扑图 场景 帧通过网络时&#xff0c;MAC 地址可能更改。 当数据包由配置了 NAT 的设备转发时&…

转录组和蛋白组如何关联分析?先从绘制九象限图开始

转录组和蛋白组如何关联分析&#xff1f;先从绘制九象限图开始 五种常用蛋白质组学定量分析方法对比 - 知乎 (zhihu.com) 九象限图在多组学关联分析中非常重要&#xff0c;例如我们可以用九象限图展示“转录组蛋白组”、“转录组翻译组”等关联分析中不同基因的差异表达情况。…

DotNet VOL.Core框架学习使用笔记(二)(持续更新)

2023-7-5 生成代码的列表界面&#xff0c;在数据行里增加一个操作列 查看按钮&#xff0c;打开编辑框&#xff0c;然后让编辑框成为一个只读的查看界面。 页面对应的js文件中增加如下 this.columns.push 函数内容。 按钮的点击事件 重点代码 this.edit(row); 这就是框架里编…

构建工具——webpack、vite

文章目录 构建工具Webpack使用步骤配置文件&#xff08;webpack.config.js&#xff09;插件&#xff08;plugin&#xff09; ViteVite 也是前端的构建工具使用命令构建配置文件&#xff1a;vite.config.js 构建工具 当我们习惯了在 node 中编写代码的方式后&#xff0c;在回到…

page-break-after: always打印时强制分页

page-break-before 元素在指定元素前添加分页符。 <div stylepage-break-after: always;></div> <p stylepage-break-after: always;></p>https://www.runoob.com/cssref/pr-print-pagebb.html

小样本图像目标检测研究综述——张振伟论文阅读

小样本图像目标检测研究综述——张振伟&#xff08;计算机工程与应用 2022&#xff09; 论文阅读 目前&#xff0c;小样本图像目标检测方法多基于经典的俩阶段目标检测算法Faster R-CNN作为主干网络&#xff0c;当然也有将YOLO&#xff0c;SSD一阶段目标检测算法作为主干网络的…

Android Studio实现内容丰富的安卓公交线路查询平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号084 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 开发语言&#xff1a;java 2.功能介绍 安卓端&#xff1a; …

zabbix基础3——邮箱告警

文章目录 一、环境说明二、第三方邮箱告警2.1 开启第三方邮箱SMTP服务2.2 配置用户媒介2.3 定义媒介类型2.4 配置告警方式和动作2.5 触发告警&#xff0c;测试效果 三、本地邮箱脚本3.1 服务端设置脚本3.2 设置用户媒介3.3 定义媒介类型3.4 配置告警方式动作3.4 触发告警&#…

Leetcode-每日一题【92.反转链表Ⅱ】

题目 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4输出&#xff1a;…

算法中的递推算法

递推算法 给定一个数的序列H0,H1,…,Hn,…若存在整数n0&#xff0c;使当n>n0时,可以用等号(或大于号、小于号)将Hn与其前面的某些项Hi(0<i<n)联系起来&#xff0c;这样的式子就叫做递推关系。 递推算法是一种简单的算法&#xff0c;即通过已知条件&#xff0c;利用特…

免费 Selenium各大浏览器驱动【谷歌chrme、火狐Firefox、IE浏览器】

aardio群 625494397 废话不多说 直接开整&#xff01; 竟然还有脸收费 服了 下载对应版本的浏览器驱动 目标网址 应用场景 Selenium库涉及到 安装selenium库 pip install selenium-i https://mirrors.aliyun.com/pypi/simple/下载对应浏览器驱动 https://registry.npmmirror.c…

The 14th Jilin Provincial Collegiate Programming Contest(暑期训练)

Attachments - The 14th Jilin Provincial Collegiate Programming Contest - Codeforces 目录 Problem A. Chord Problem B. Problem Select Problem C. String Game Problem E. Shorten the Array Problem F. Queue Problem G. Matrix Problem J. Situation Problem L. …

ESP32设备驱动-HTU31温湿度传感器驱动

HTU31温湿度传感器驱动 文章目录 HTU31温湿度传感器驱动1、HTU31介绍2、硬件准备3、软件准备4、驱动实现1、HTU31介绍 高性能 HTU31 湿度和温度组合传感器是市场上最小和最精确的湿度传感器之一。 HTU31 提供数字和模拟版本,即使在最恶劣的环境中也能提供快速响应时间、精确测…

阿里云美国服务器怎么样?

随着业务量的扩展&#xff0c;很多小伙伴的业务发展到了海外&#xff0c;那么阿里云服务器给大家提供了方便&#xff0c;那么今天我们来说一下阿里云美国服务器好不好用&#xff0c;首先阿里云在美国有两个地域供大家选择&#xff1a;美国西部1&#xff08;硅谷&#xff09;和美…