当前位置: 首页 > news >正文

Python3虚拟环境与包管理:项目隔离的艺术

Python3虚拟环境与包管理

    • 为什么需要虚拟环境?
    • 虚拟环境工具:你的岛屿建设者
    • 一、使用venv创建虚拟环境
      • 创建虚拟环境
      • 激活虚拟环境
      • 退出虚拟环境
    • 二、 包管理:岛上的补给系统
      • 2.1 pip:Python的包安装工具
        • 基本用法
        • 依赖管理
      • 2.2 高级包管理工具:现代化解决方案
        • Pipenv:结合了pip和virtualenv
        • Poetry:现代Python项目管理工具
    • 三、 实际例子:项目工作流实战
      • 场景:开发一个Web爬虫项目
      • 场景:使用Poetry创建一个可分享的库
    • 四、 虚拟环境最佳实践:驾驭孤岛的智慧
    • 五、 进阶技巧:虚拟环境忍者之道
      • 多Python版本管理
      • 虚拟环境管理器
      • Docker容器:终极隔离
    • 📝 小测验:检验你的虚拟环境知识
    • 🎭 小故事:依赖地狱与救赎
    • 🌈 总结:虚拟环境的哲学

为什么需要虚拟环境?

想象一下这个场景:

  • 你的老项目依赖Python 3.7和Django 2.2
  • 你的新项目需要Python 3.11和Django 4.2
  • 你的实验项目需要尝试最新的Django 5.0测试版

如果把所有这些包都安装到系统的Python环境中,它们会互相冲突,造成一场"依赖地狱"🔥。这就是为什么我们需要虚拟环境

虚拟环境就像是给每个项目创建一个隔离的小岛🏝️,每个岛上都有自己独立的Python解释器和包集合,互不干扰。

虚拟环境工具:你的岛屿建设者

Python生态系统中有几种主要的虚拟环境工具:

工具特点适用场景
venvPython标准库自带,简单轻量日常项目开发
virtualenv功能更丰富的第三方库需要更多控制选项时
conda支持Python和非Python依赖数据科学和机器学习
pipenv结合了pip和virtualenv的功能应用开发,依赖锁定
poetry现代化依赖管理和打包库开发和复杂项目

今天我们主要介绍官方标准的venv和最流行的扩展工具。

一、使用venv创建虚拟环境

venv是Python 3.3+内置的虚拟环境模块,不需要额外安装:

创建虚拟环境

# 在当前目录下创建名为"myenv"的虚拟环境
python -m venv myenv

激活虚拟环境

不同操作系统的激活方式不同:

Windows:

myenv\Scripts\activate

macOS/Linux:

source myenv/bin/activate

激活后,你的命令提示符会变成这样:

(myenv) $

这表示你现在"登陆"到了这个虚拟环境小岛上!🏝️

退出虚拟环境

当你完成工作,想"离开小岛"时:

deactivate

二、 包管理:岛上的补给系统

既然有了虚拟环境,接下来就需要管理岛上的"物资"(Python包)了!

2.1 pip:Python的包安装工具

pip是Python的标准包管理工具,它可以:

  • 安装包
  • 升级包
  • 卸载包
  • 查看已安装的包
  • 导出/导入依赖列表
基本用法
# 安装包
pip install requests# 指定版本安装
pip install requests==2.28.1# 安装最小版本
pip install "requests>=2.20.0"# 安装版本范围
pip install "requests>=2.20.0,<2.29.0"# 升级包
pip install --upgrade requests# 卸载包
pip uninstall requests# 列出已安装的包
pip list# 查看包的详细信息
pip show requests
依赖管理
# 导出环境中的所有包及其版本
pip freeze > requirements.txt# 从requirements.txt安装包
pip install -r requirements.txt

2.2 高级包管理工具:现代化解决方案

随着项目复杂度增加,你可能需要更强大的工具:

Pipenv:结合了pip和virtualenv

Pipenv是一个更现代的依赖管理工具,它会自动为你的项目创建和管理虚拟环境。

# 安装Pipenv
pip install pipenv# 安装包(自动创建或使用现有的虚拟环境)
pipenv install requests# 安装开发依赖
pipenv install pytest --dev# 激活环境
pipenv shell# 运行命令
pipenv run python script.py# 生成锁文件
pipenv lock

Pipenv使用两个文件管理依赖:

  • Pipfile:人类可读的依赖声明
  • Pipfile.lock:确保可重复安装的详细依赖锁定文件
Poetry:现代Python项目管理工具

Poetry是一个更完整的解决方案,专注于依赖管理和项目打包:

# 安装Poetry
curl -sSL https://install.python-poetry.org | python3 -# 创建新项目
poetry new my-project# 添加依赖
poetry add requests# 添加开发依赖
poetry add pytest --dev# 安装所有依赖
poetry install# 更新依赖
poetry update# 在虚拟环境中运行命令
poetry run python script.py# 进入虚拟环境
poetry shell

Poetry使用pyproject.toml文件管理项目配置和依赖,这是Python官方推荐的新标准。

三、 实际例子:项目工作流实战

场景:开发一个Web爬虫项目

# 1. 创建项目目录
mkdir web_crawler
cd web_crawler# 2. 创建虚拟环境
python -m venv venv# 3. 激活虚拟环境
# 在Windows上:
venv\Scripts\activate
# 在macOS/Linux上:
source venv/bin/activate# 4. 安装依赖
pip install requests beautifulsoup4 pandas# 5. 创建主程序文件
touch crawler.py# 6. 编写代码...# 7. 导出依赖,方便其他人安装
pip freeze > requirements.txt# 8. 在版本控制中忽略虚拟环境文件夹
echo "venv/" >> .gitignore

场景:使用Poetry创建一个可分享的库

# 1. 创建新库项目
poetry new my-awesome-lib# 2. 添加依赖
cd my-awesome-lib
poetry add requests# 3. 添加开发依赖
poetry add pytest pytest-cov --dev# 4. 编写代码...# 5. 运行测试
poetry run pytest# 6. 构建库
poetry build# 7. 发布到PyPI
poetry publish

四、 虚拟环境最佳实践:驾驭孤岛的智慧

  1. 项目隔离:为每个项目创建独立的虚拟环境
  2. 明确依赖:使用requirements.txtpyproject.toml明确声明依赖
  3. 版本锁定:指定包的具体版本,确保可重复安装
  4. 环境一致性:使用锁文件(Pipfile.lock或Poetry的poetry.lock)确保团队环境一致
  5. 虚拟环境不入源:不要将虚拟环境文件夹提交到版本控制系统
  6. 使用.gitignore:将虚拟环境文件夹(venv/, .venv/)添加到.gitignore
  7. 项目结构标准化:采用一致的项目结构,如:
    my_project/
    ├── .gitignore
    ├── README.md
    ├── requirements.txt (或 pyproject.toml)
    ├── my_project/
    │   ├── __init__.py
    │   └── ...
    └── tests/├── __init__.py└── ...
    

五、 进阶技巧:虚拟环境忍者之道

多Python版本管理

如果你需要在不同的Python版本之间切换,可以使用:

  • pyenv(macOS/Linux):管理多个Python版本

    # 安装Python 3.8
    pyenv install 3.8.12# 设置全局Python版本
    pyenv global 3.8.12# 设置当前目录的Python版本
    pyenv local 3.9.7
    
  • pyenv-win(Windows):pyenv的Windows版本

虚拟环境管理器

  • virtualenvwrapper:管理多个虚拟环境的工具
    # 创建新环境
    mkvirtualenv myproject# 切换环境
    workon myproject# 列出所有环境
    lsvirtualenv# 删除环境
    rmvirtualenv myproject
    

Docker容器:终极隔离

对于更完整的环境隔离,考虑使用Docker容器:

FROM python:3.9-slimWORKDIR /appCOPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txtCOPY . .CMD ["python", "app.py"]

📝 小测验:检验你的虚拟环境知识

  1. 当你激活虚拟环境后,pip install requests会把包安装到哪里?

    • A. 系统全局Python环境
    • B. 当前项目的虚拟环境
    • C. 用户主目录
  2. 以下哪个命令可以导出虚拟环境中的依赖列表?

    • A. pip export > requirements.txt
    • B. pip freeze > requirements.txt
    • C. pip list > requirements.txt
  3. 以下哪个不是Python虚拟环境工具?

    • A. venv
    • B. virtualenv
    • C. pypi
  4. 为什么我们不应该把虚拟环境文件夹提交到Git仓库?

    • A. 文件太大
    • B. 包含平台特定的二进制文件,不利于跨平台
    • C. 以上都是

答案:1-B, 2-B, 3-C, 4-C

🎭 小故事:依赖地狱与救赎

很久以前,有一位Python开发者没有使用虚拟环境…

他先开发了一个使用Django 2.2的旧项目,然后又开始一个需要Django 3.2的新项目。为了运行新项目,他升级了系统中的Django:

pip install --upgrade django

第二天,他的老板要求紧急修复旧项目的一个bug。当他运行旧项目时:

ImportError: cannot import name 'xyz' from 'django.abc'

旧项目不兼容新版Django!他必须降级Django来修复旧项目,然后再升级来继续开发新项目…周而复始,痛苦不堪。

最后,一位智者向他展示了虚拟环境的力量,从此他的项目各自安居在自己的小岛上,再也没有冲突,开发者也从依赖地狱中获得了救赎。

🌈 总结:虚拟环境的哲学

  • 虚拟环境不是奢侈品,而是必需品
  • "每个项目一个环境"是Python开发的最佳实践
  • 明确声明和锁定依赖版本是团队协作的基础
  • 现代化工具(Poetry、Pipenv)提供了更完整的解决方案
  • 掌握虚拟环境,让你的Python之旅更加顺畅

“给我一个虚拟环境,我能撬动整个Python世界。” —— 阿基米德(如果他是Python开发者)


记住:好的项目管理始于良好的环境隔离!掌握虚拟环境,你就掌握了Python项目的基础架构。

相关文章:

Python3虚拟环境与包管理:项目隔离的艺术

Python3虚拟环境与包管理 为什么需要虚拟环境&#xff1f;虚拟环境工具&#xff1a;你的岛屿建设者一、使用venv创建虚拟环境创建虚拟环境激活虚拟环境退出虚拟环境 二、 包管理&#xff1a;岛上的补给系统2.1 pip&#xff1a;Python的包安装工具基本用法依赖管理 2.2 高级包管…...

23、DeepSeekMath论文笔记(GRPO)

DeepSeekMath论文笔记 0、研究背景与目标1、GRPO结构GRPO结构PPO知识点**1. PPO的网络模型结构****2. GAE&#xff08;广义优势估计&#xff09;原理****1. 优势函数的定义**2.GAE&#xff08;广义优势估计&#xff09; 2、关键技术与方法3、核心实验结果4、结论与未来方向关键…...

Python自动化-python基础(下)

六、带参数的装饰器 七、函数生成器 运行结果&#xff1a; 八、通过反射操作对象方法 1.添加和覆盖对象方法 2.删除对象方法 通过使用内建函数: delattr() # 删除 x.a() print("通过反射删除之后") delattr(x, "a") x.a()3 通过反射判断对象是否有指定…...

用Python绘制动态彩色ASCII爱心:技术深度与创意结合

引言 在技术博客的世界里&#xff0c;代码不仅仅是解决问题的工具&#xff0c;更可以是表达创意的媒介。今天我将分享一个独特的Python爱心代码项目&#xff0c;它结合了数学之美、ASCII艺术和动态效果&#xff0c;展示了Python编程的无限可能。这个项目不仅能运行展示出漂亮的…...

【C++】红黑树

1.红黑树的概念 是一种二叉搜索树&#xff0c;在每个节点上增加一个存储位表示节点的颜色&#xff0c;Red或black&#xff0c;通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;确保没有一条路径会比其他路径长出俩倍&#xff0c;是接近平衡的。 2.红黑树…...

链表头插法的优化补充、尾插法完结!

头插法的优化补充 这边我们将考虑到可以将动态创建链表&#xff0c;和插入新链表到链表头前方&#xff0c;成为新链表头的方法分开&#xff0c;使其自由度上升&#xff0c;在创建完链表后&#xff0c;还可以添加链表元素到成为新的链表头。 就是说可以单独的调用这个insertHea…...

Java多线程(超详细版!!)

Java多线程(超详细版&#xff01;&#xff01;) 文章目录 Java多线程(超详细版&#xff01;&#xff01;)1. 线程 进程 多线程2.线程实现2.1线程创建2.1.1 继承Thread类2.1.2 实现runnable接口2.1.2.1 思考&#xff1a;为什么推荐使用runnable接口&#xff1f;2.1.2.1.1 更高的…...

超详细fish-speech本地部署教程

本人配置&#xff1a; windows x64系统 cuda12.6 rtx4070 一、下载fish-speech模型 注意&#xff1a;提前配置好git&#xff0c;教程可在自行搜索 git clone https://gitclone.com/github.com/fishaudio/fish-speech.git cd fish-speech 或者直接进GitHub中下载也可以 …...

Flink和Spark的选型

在Flink和Spark的选型中&#xff0c;需要综合考虑多个技术维度和业务需求&#xff0c;以下是在项目中会重点评估的因素及实际案例说明&#xff1a; 一、核心选型因素 处理模式与延迟要求 Flink&#xff1a;基于事件驱动的流处理优先架构&#xff0c;支持毫秒级低延迟、高吞吐的…...

解锁 DevOps 新境界 :使用 Flux 进行 GitOps 现场演示 – 自动化您的 Kubernetes 部署

前言 GitOps 是实现持续部署的云原生方式。它的名字来源于标准且占主导地位的版本控制系统 Git。GitOps 的 Git 在某种程度上类似于 Kubernetes 的 etcd&#xff0c;但更进一步&#xff0c;因为 etcd 本身不保存版本历史记录。毋庸置疑&#xff0c;任何源代码管理服务&#xf…...

【从零实现JsonRpc框架#1】Json库介绍

1.JsonCpp第三方库 JSONCPP 是一个开源的 C 库&#xff0c;用于解析和生成 JSON&#xff08;JavaScript Object Notation&#xff09;数据。它提供了简单易用的接口&#xff0c;支持 JSON 的序列化和反序列化操作&#xff0c;适用于处理配置文件、网络通信数据等场景。 2.Jso…...

使用FastAPI和React以及MongoDB构建全栈Web应用02 前言

Who this book is for 本书适合哪些人阅读 This book is designed for web developers who aspire to build robust, scalable, and efficient web applications. It caters to a broad spectrum of developers, from those with foundational knowledge to experienced prof…...

JavaScript中的数据类型

目录 前言 基本类型 Number 特殊的数值NaN Infinity和-Infinity String Boolean Undefined null Symbol Undefined和Null的区别 引用类型 Object&#xff08;对象&#xff09; Array&#xff08;数组&#xff09; Function&#xff08;函数&#xff09; 函数声…...

AI 助力,轻松进行双语学术论文翻译!

在科技日新月异的今天&#xff0c;学术交流中的语言障碍仍然是科研工作者面临的一大挑战。尤其是对于需要查阅大量外文文献的学生、科研人员和学者来说&#xff0c;如何高效地理解和翻译复杂的学术论文成为了一大难题。然而&#xff0c;由Byaidu团队推出的开源项目PDFMathTrans…...

第3.2.3节 Android动态调用链路的获取

3.2.3 Android App动态调用链路 在Android应用中&#xff0c;动态调用链路指的是应用在运行时的调用路径。这通常涉及到方法调用的顺序和调用关系&#xff0c;特别是在应用的复杂逻辑中&#xff0c;理解这些调用链路对于调试和性能优化非常重要。 1&#xff0c;动态调用链路获…...

【Android】文件分块上传尝试

【Android】文件分块上传 在完成一个项目时&#xff0c;遇到了需要上传长视频的场景&#xff0c;尽管可以手动限制视频清晰度和视频的码率帧率&#xff0c;但仍然避免不了视频大小过大的问题&#xff0c;且由于服务器原因&#xff0c;网络不太稳定。这个时候想到了可以将文件分…...

大模型中的三角位置编码实现

Transformer中嵌入表示 位置编码的实现 import torch import math from torch import nn# 词嵌入位置编码实现 class EmbeddingWithPosition(nn.Module):"""vocab_size:词表大小emb_size: 词向量维度seq_max_len: 句子最大长度 (人为设定&#xff0c;例如GPT2…...

深入详解人工智能数学基础——微积分中的自动微分及其在PyTorch中的实现原理

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...

【Linux学习笔记】系统文件IO之重定向原理分析

【Linux学习笔记】系统文件IO之重定向原理分析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Linux学习笔记 文章目录 【Linux学习笔记】系统文件IO之重定向原理分析前言一. 系统文件I/01.1 一种传递标志位的方法1.2 hello.c写文件:1.3 he…...

《React Native与Flutter:社交应用中用户行为分析与埋点统计的深度剖析》

React Native与Flutter作为两款备受瞩目的跨平台开发框架&#xff0c;正深刻地影响着应用的构建方式。当聚焦于用户行为分析与埋点统计时&#xff0c;它们各自展现出独特的策略与工具选择&#xff0c;这些差异和共性不仅关乎开发效率&#xff0c;更与社交应用能否精准把握用户需…...

Cesium高度参考系统

🌍 Cesium高度参考系统趣味探索 🚀 高度参考系统形象比喻 想象一下,你正在玩一个积木游戏: CLAMP_TO_GROUND:积木被"强力胶水"粘在桌面上,无论桌面高低起伏如何 RELATIVE_TO_GROUND:积木放在"微型支架"上,始终保持离桌面固定距离 NONE:积木漂…...

海纳思(Hi3798MV300)机顶盒遇到海思摄像头

海纳思机顶盒遇到海思摄像头&#xff0c;正好家里有个海思Hi3516的摄像头模组开发板&#xff0c;结合机顶盒来做个录像。 准备工作 海纳斯机顶盒摄像机模组两根网线、两个电源、路由器一块64G固态硬盘 摄像机模组和机顶盒都接入路由器的LAN口&#xff0c;确保网络正常通信。 …...

[python] 类

一 介绍 具有相同属性和行为的事物的通称,是一个抽象的概念 三要素: 类名,属性&#xff0c;方法 格式: class 类名: 代码块 class Pepole:name "stitchcool"def getname(self):return self.name 1.1 创建对象(实例化) 格式: 对象名 类名() p1 Pepole()…...

Python中的事件循环是什么?事件是怎么个事件?循环是怎么个循环

在Python异步编程中&#xff0c;事件循环&#xff08;Event Loop&#xff09;是核心机制&#xff0c;它通过单线程实现高效的任务调度和I/O并发处理。本文将从事件的定义、循环的运行逻辑以及具体实现原理三个维度展开分析。 一、事件循环的本质&#xff1a;协程与任务的调度器…...

单片机-STM32部分:11、ADC

飞书文档https://x509p6c8to.feishu.cn/wiki/OclUwlkifiRKR2k6iLbczn5tn8g STM32的ADC是一种逐次逼近型模拟数字转换器。 是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。 逐次逼近型ADC的原理图下&#xff1a; STM32f103系列有3个ADC&#xff0c;精度为12…...

【含文档+PPT+源码】基于微信小程序的社区便民防诈宣传系统设计与实现

项目介绍 本课程演示的是一款基于微信小程序的社区便民防诈宣传系统设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套…...

Laravel 安全:批量赋值 fillable 与 guarded

Laravel 的模型中有两个 protected 字段 fillable 与 guarded&#xff0c;注意&#xff1a;必须是 protected 以上开放程度。 我们经常通过提交表单进行数据的增删改&#xff0c;为了方便的进行数据批量修改操作 Laravel 提供了批量赋值机制&#xff1a; 假如我们想要在数据库…...

[杂谈随感-13]: 人的睡眠,如何布置床的位置比较有安全?感?

睡眠环境中的床位布置直接影响心理安全感与睡眠质量&#xff0c;需从空间防御性、人体感知机制及环境心理学多维度综合设计。 以下基于科学原理与实践案例&#xff0c;系统解析床位布置的核心策略&#xff1a; 一、空间防御性布局&#xff1a;构建心理安全边界 背靠实体墙&a…...

协议路由与路由协议

协议路由”和“路由协议”听起来相似&#xff0c;但其实是两个完全不同的网络概念。下面我来分别解释&#xff1a; 一、协议路由&#xff08;Policy-Based Routing&#xff0c;PBR&#xff09; ✅ 定义&#xff1a; 协议路由是指 根据预设策略&#xff08;策略路由&#xff0…...

内网穿透系列三:开源本地服务公网映射工具 tunnelmole

以下是对 tunnelmole 简要介绍&#xff1a; tunnelmole 是一款开源的内网穿透工具&#xff0c;一行命令就能把本地http服务映射成公网可访问的链接提供公共免费的网络服务&#xff0c;直接下载运行命令即可使用&#xff0c;也支持自行配置搭建私有客户端、服务端参考开源地址&…...

发行基础:本地化BUG导致审核失败

1、早上收到邮件&#xff0c;Steam客服说本地化功能找不到&#xff0c;无法切换多国语言&#xff0c;所以正式版V1.0程序未通过。 大脑瞬间有要爆炸的感觉&#xff0c;测试后发现V1以及demo都存在同样问题。 属于重大BUG&#xff0c;需要立即解决&#xff0c;最高优先级。 2、…...

QB/T 1649-2024 聚苯乙烯泡沫塑料包装材料检测

聚苯乙烯泡沫塑料包装材料是指以可发行聚苯乙烯珠粒为原料&#xff0c;经加热预发泡后在模具中加热成型而制得&#xff0c;具有闭孔结构的聚苯乙烯泡沫塑料包装材料。 QB/T 1649-2024聚苯乙烯泡沫塑料包装材料检测项目&#xff1a; 测试项目 测试标准 外观 QB/T 1649 气味…...

【Day 24】HarmonyOS端云一体化开发:云函数

一、端云开发核心架构 1. 技术栈对比 维度传统开发模式HarmonyOS端云一体化方案优势 开发工具需独立配置前后端环境DevEco Studio统一开发端云代码降低60%环境搭建时间部署流程手动部署服务器与数据库一键部署至AGC Serverless免运维&#xff0c;自动弹性伸缩通信安全需自行实…...

大模型(LLMs)强化学习——RLHF及其变种

大模型&#xff08;LLMs&#xff09;强化学习——RLHF及其变种面 一、介绍一下 LLM的经典预训练Pipeline&#xff1f;二、预训练&#xff08;Pre-training&#xff09;篇 具体介绍一下 预训练&#xff08;Pre-training&#xff09;&#xff1f;三、有监督微调&#xff08;Sup…...

20250510解决NanoPi NEO core开发板在Ubuntu core22.04.3系统下适配移远的4G模块EC200A-CN的问题

1、h3-eflasher-friendlycore-jammy-4.14-armhf-20250402.img.gz 在WIN10下使用7-ZIP解压缩/ubuntu20.04下使用tar 2、Win32DiskImager.exe 写如32GB的TF卡。【以管理员身份运行】 3、TF卡如果已经做过会有3个磁盘分区&#xff0c;可以使用SD Card Formatter/SDCardFormatterv5…...

WinCC V7.2到V8.0与S71200/1500系列连接通讯教程以及避坑点

声明&#xff1a;WinCC与PLC连接详细指导与注意避坑点&#xff0c;部分图片和描述来源于网络&#xff0c;如有冒犯&#xff0c;请联系本人删除。 1.环境介绍 自WinCC V7.2版本起&#xff0c;软件新增加了 "SIMATIC S7-1200, S7-1500 Channel"通道,用于WinCC与 S7-1…...

WPF 性能 UI 虚拟化 软件开发人员的思考

UI 虚拟化是 WPF 采用的一项技术&#xff0c;框架会仅创建用户可见的 UI 元素。例如&#xff0c;如果 ListView 中有 1000 个文本块控件&#xff0c;但您只能查看其中的 10 个&#xff0c;那么 VisualTree 中也只会显示 10 个文本块。向下滚动时&#xff0c;不再可见的元素将被…...

服务器综合实验(实战详解)

该文章的目录部分 实验内容 实验完成步骤 虚拟机准备 配置两个虚拟机的本地仓库 虚拟机A&#xff1a; 虚拟机B&#xff1a; 配置SSH公钥互信 虚拟机A&#xff1a; ​编辑 虚拟机B&#xff1a; 提供基于bind的DNS服务 虚拟机A&#xff1a; 项目需求1&#xff1a; …...

【动态导通电阻】软硬开关下GaN器件的动态RDSON

2019年,浙江大学的Rui Li、Xinke Wu等人基于双脉冲和多脉冲测试方法,研究了在硬开关和软开关条件下商用氮化镓(GaN)功率器件的动态导通电阻(R DSON )特性。实验结果表明,不同GaN器件在硬开关和软开关条件下的动态R DSON 表现出不同的行为,这些行为受关断电压和频率的影…...

Java基础 5.10

1.方法重写课堂练习 package com.logic.override_; //编写一个Person类 包括属性/private(name, age) 构造器 方法say(返回自我介绍的字符串) //编写一个Student类 继承Person类 增加id score 属性/private 以及构造器 //定义say方法(返回自我介绍的信息) //在main中 分别创建…...

通信原理绪论

&#xff08;I&#xff09;信息量&#xff1a;第j条消息中包含的信息定义为&#xff1a;I(j) 消息是信息的表现形式 消息是信息的一种抽象和本质内容 消息中所含的信息量是该消息出现概率的函数&#xff0c;即 I I[P(x)] P&#xff08;x&#xff09;越小&#xff0c;I越…...

Maven 插件配置分层架构深度解析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

jMeter压测环境部署JDK+Groovy+JMeter+Proto+IntelliJ IDEA

为确保 Groovy、JDK 和 JMeter 三者的版本兼容性&#xff0c;需遵循以下核心原则和步骤&#xff1a; 一、版本兼容性对照表 组件推荐版本范围关键兼容规则JDKJava 8/11/17 (LTS)- JMeter 5.6 支持 Java 11/17GroovyGroovy 3.0.7 或 4.0- Groovy 3.x 支持 Java 8-17 - Groovy 4…...

c#建筑行业财务流水账系统软件可上传记账凭证财务管理系统签核功能

# financial_建筑行业 建筑行业财务流水账系统软件可上传记账凭证财务管理系统签核功能 # 开发背景 软件是给岳阳客户定制开发一款建筑行业流水账财务软件。提供工程签证单、施工日志、人员出勤表等信息记录。 # 财务管理系统功能描述 1.可以自行设置记账科目&#xff0c;做凭…...

深度解析 MySQL 与 Spring Boot 长耗时进程:从故障现象到根治方案(含 Tomcat 重启必要性分析)

一、典型故障现象与用户痛点 在高并发业务场景中&#xff0c;企业级 Spring Boot 应用常遇到以下连锁故障&#xff1a; 用户侧&#xff1a;网页访问超时、提交表单无响应&#xff0c;报错 “服务不可用”。运维侧&#xff1a;监控平台报警 “数据库连接池耗尽”&#xff0c;To…...

一种运动平台扫描雷达超分辨成像视场选择方法——论文阅读

一种运动平台扫描雷达超分辨成像视场选择方法 1. 专利的研究目标与意义1.1 研究目标1.2 实际意义2. 专利的创新方法与技术细节2.1 核心思路与流程2.1.1 方法流程图2.2 关键公式与模型2.2.1 回波卷积模型2.2.2 最大后验概率(MAP)估计2.2.3 统计约束模型2.2.4 迭代优化公式2.3 …...

【程序员AI入门:开发】11.从零构建智能问答引擎:LangChain + RAG 实战手册

1、技术选型 组件推荐方案说明文本嵌入模型sentence-transformers/all-MiniLM-L6-v2轻量级且效果较好的开源模型向量数据库FAISS高效的本地向量检索库大语言模型GPT-3.5/开源LLM&#xff08;如ChatGLM3&#xff09;根据资源选择云端或本地模型文档处理框架LangChain简化RAG流程…...

《深入理解Linux网络》笔记

《深入理解Linux网络》笔记 前言参考 前言 前段时间看了《深入理解Linux网络》这本书&#xff0c;虽然有些地方有以代码充篇幅的嫌疑&#xff0c;但总体来说还是值得一看的。在这里简单记录一下笔记&#xff0c;记录下对网络新的理解。 内核是如果接受网络包的&#xff1f; 如…...

【计算机视觉】优化MVSNet可微分代价体以提高深度估计精度的关键技术

优化MVSNet可微分代价体以提高深度估计精度的关键技术 1. 代价体基础理论与分析1.1 标准代价体构建1.2 关键问题诊断 2. 特征表示优化2.1 多尺度特征融合2.2 注意力增强匹配 3. 代价体构建优化3.1 自适应深度假设采样3.2 可微分聚合操作改进 4. 正则化与优化策略4.1 多尺度代价…...

致远A8V5-9.0安装包(包含信创版)【附百度网盘链接】

A8适用于中大型企业&#xff0c;基于"以人为中心"的产品理念&#xff0c;致力于为企业构建和完善“数字智能”的协同运营体系&#xff0c;以组织模型为基础&#xff0c;连接各项工作和业务&#xff0c;聚合信息、资源和能力&#xff0c;实现组织内和跨组织的高效协同…...