《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》
简介:
“本文为AI开发者揭秘如何在阿里云2核2G轻量级ECS服务器上,通过Ubuntu系统与Ollama框架实现Deepseek模型的高效部署。无需昂贵硬件,手把手教程涵盖环境配置、资源优化及避坑指南,助力初学者用极低成本在云端跑通行业领先的大语言模型,解锁轻量化服务器运行AI任务的无限可能!”
一、环境准备清单
服务器
服务器:Ubuntu 24.04 64位
CPU&内存:2核(CPU) & 2 GiB
ESSD Entry云盘:40GB
SSH软件
MobaXterm_Personal_21.4
Deepseek版本
本教程选择:DeepSeek-R1-Distill-Qwen-1.5B
官方推荐配置
DeepSeek R1 模型参数和显存需求:
模型名称 | 参数量 | 显存需求 | 推荐显卡型号(最低) |
---|---|---|---|
DeepSeek-R1-Distill-Qwen-1.5B | 1.5B | 4-6 GB | GTX 1660 Ti、RTX 2060 |
DeepSeek-R1-Distill-Qwen-7B | 7B | 12-16 GB | RTX 3060、RTX 3080 |
DeepSeek-R1-Distill-Llama-8B | 8B | 16-20 GB | RTX 3080 Ti、RTX 3090 |
DeepSeek-R1-Distill-Qwen-14B | 14B | 24-32 GB | RTX 3090、RTX 4090 |
DeepSeek-R1-Distill-Qwen-32B | 32B | 48-64 GB | A100、H100 |
DeepSeek-R1-Distill-Llama-70B | 70B | 80-128 GB | A100、H100、MI250X |
二、Shell工具连接云服务器
- 点击右上角的:Session
- 点击SSH
- 输入host和username点击OK
- 输入密码即可
三、安装Ollama
简介:
Ollama 是一款专注于本地化AI模型运行与管理的开源工具,其核心功能在于实现模型的轻量化部署与全生命周期维护,通过容器化封装与资源调度优化,显著降低开发者在本地环境构建私有AI服务的技术门槛。
github地址:https://github.com/ollama/ollama
Linux版安装
# Linxu安装
curl -fsSL https://ollama.com/install.sh | sh
本地解压版
由于网速的原因,很难将Linux版本的ollama下载下载,所以本文提供了tgz文件,从而实现解压安装。
网盘地址:https://pan.baidu.com/s/1mx_3R4NVjOSC9D8BaGdYHg?pwd=9eg7
- 步骤一:在服务器上建立一个空的文件夹,用来存放ollama文件
mkdir ollama
- 适用工具将压缩包上传到服务器上
工具:WinSCP-5.21.5-Setup
地址:https://pan.baidu.com/s/1mx_3R4NVjOSC9D8BaGdYHg?pwd=9eg7
打开软件后,输入服务器的ip、用户名、密码
上传完成
# 解压命令
# tar -zxvf
sudo -zxvf ollama-linux-amd64.tgz
# 将解压后ollama文件夹的bin目录中的ollama复制到 /usr/bin中
cp bin/ollama /usr/bin
# 测试是否安装成功,出现命令帮助表示为ollama安装成功
ollama
使用魔塔社区安装(建议使用)
官网安装教程:https://www.modelscope.cn/models/modelscope/ollama-linux
- 首先要安装支持大模型支持的环境:ModelScope Notebook
官网安装教程:https://modelscope.cn/notebook/share/ipynb/4a85790f/ollama-installation.ipynb
注意点:安装该平台需要服务器上有python和pip的环境
- 安装python和pip
sudo apt install python3
sudo apt install pip
- 安装ModelScope Notebook
# 本教程在使用此命令时,会发生错误
pip install modelscope -U
解决方案:
# 强制安装,无视风险pip install modelscope -U --break-system-package s.
# 以下为安装成功的截图
- 从ModelScope上下载Ollama安装包
modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux --revision v0.6.2
- 安装ollama
cd ollama-linux && sudo chmod +x ./ollama-modelscope-install.sh && ./ollama-modelscope-install.sh
# 查看版本号
ollama --version
- 启动ollama
systemctl start ollama.service
# 查看服务活动状态
systemtcl status ollama.servicesystemctl is-active ollama.servie
启动Ollama(魔塔安装或直接安装可忽略此步骤)
# 检测是否启动 active 为启动;inactive为未启动systemctl is-active ollama.serviesystemctl status ollama.service
# 启动systemctl start ollama.service
# 启动命令:
systemctl start ollama.service
# 结果:发现并不存在ollama.service
创建ollama.service文件(魔塔安装或直接安装可忽略此步骤)
- 建一个新的服务文件 /etc/systemd/system/ollama.service
切换到/etc/systemd/system
创建ollama.service
cd /etc/systemd/system
vim ollama.service
- 文件内容格式
Description 是服务的简单描述。
After 指定了在哪个服务启动后启动此服务。
Type 定义了服务进程的启动类型,simple 表示启动主进程。
User 指定运行服务的用户,本文用的是root ,你也可以用其他账户。
WorkingDirectory 设置服务的工作目录,本文用的/root,你也可以切换成其他用户目录。
ExecStart 指定启动服务的命令。命令位置为:/usr/bin/ollama 中的serve
Restart 指定服务崩溃时的重启策略。
RestartSec 设置重启服务前等待的时间。
WantedBy 指定了服务所在的 target,multi-user.target 表示多用户系统。
[Unit]
Description=Ollama Service
After=network.target[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/usr/bin/ollama serve
Restart=on-failure
RestartSec=30[Install]
WantedBy=multi-user.target
# 修改完后,切换到vim的命令格式输入:qw保存
# 步骤1: 按Esc
# 步骤2::wq
- 重新加载服务单元文件
命令解释:
在修改了某个服务单元文件后,想要让更改生效,所以需要执行这个命令。需要明确的是,当用户修改的是/etc/systemd/system/下的服务文件时,应该使用daemon-reload。但如果修改的是systemd本身的配置文件比如system.conf,则需要用daemon-reexec,
sudo systemctl daemon-reload
再次启动ollama(此步骤为离线包安装步骤)
# 查看服务状态
systemctl status ollama.service
systemctl is-active ollama.service
# 启动
systemctl start ollama.service
# 设置服务开机自启动
systemctl enable ollama.service
当前的服务状态图:(已启动)
开机自启动
四、Deepseek内存需求对比表(推理模式)
模型规模 | 数据类型 | 理论参数内存 | 实际显存估算(含激活值) | 推荐显存配置 |
---|---|---|---|---|
1.5B | FP16 | 3 GiB | 3.6-4.5 GiB | 6-8 GB |
Int8 | 1.5 GiB | 1.95-2.4 GiB | 4 GB+ | |
7B | FP16 | 14 GiB | 16.8-21 GiB | 24 GB |
Int8 | 7 GiB | 8.4-10.5 GiB | 12 GB+ | |
13B | FP16 | 26 GiB | 31.2-39 GiB | 40 GB+ |
Int8 | 13 GiB | 15.6-19.5 GiB | 24 GB+ | |
33B | FP16 | 66 GiB | 79.2-99 GiB | 多卡并行 |
Int8 | 33 GiB | 39.6-49.5 GiB | 48 GB+ | |
70B | FP16 | 140 GiB | 168-210 GiB | 多卡并行 |
Int8 | 70 GiB | 84-105 GiB | 多卡并行 |
五、内存不足解决方案-虚拟内存
因为我们的云服务器只有2G的内存,所以将虚拟内存作为解决方案
▶ 技术定义
虚拟内存(Swap)是通过将磁盘空间模拟为内存使用的技术,当物理内存不足时,系统会将非活跃内存页暂存至磁盘交换区。
▶ 核心运行机制
物理内存(2GB) ←→ 交换分区/文件(如12GB)│└─ 内核通过分页算法自动管理热数据
虚拟内存的优劣对比
优势 | 劣势 |
---|---|
内存扩展:突破物理内存限制 | 性能损失:磁盘I/O速度比内存慢100-1000倍 |
防OOM:避免程序崩溃 | 硬件损耗:SSD频繁写入降低寿命 |
成本低:无需硬件升级 | 安全风险:交换文件可能泄漏敏感数据 |
弹性配置:按需调整大小 | 响应延迟:交换抖动(Thrashing)导致卡顿 |
▶ 搭建模型使用虚拟内存优劣对比分析表
优势 | 劣势 |
---|---|
✅** 突破硬件限制**:总可用内存达14GB(2+12) | ❌** 性能断崖下降**:推理速度可能从3.2 tokens/s降至0.3-0.8 tokens/s |
✅** 防OOM崩溃**:可支撑约512 tokens上下文 | ❌** SSD寿命风险**:模型运行时可能产生15-30GB/日的写入量(SSD寿命约300TBW) |
✅** 零硬件成本**:仅需磁盘空间 | ❌** 响应不可靠**:P99延迟可能超过5秒 |
✅** 快速部署**:30分钟内完成配置 | ❌** 功能阉割**:需关闭attention优化等特性 |
▶ 详细构建步骤(Ubuntu系统)
1. 创建12GB Swap文件
# 使用快速分配(需fallocate支持)
sudo fallocate -l 12G /swapfile
# 传统方式(若无fallocate):
# sudo dd if=/dev/zero of=/swapfile bs=1G count=12 status=progress# 设置权限
sudo chmod 600 /swapfile# 格式化为Swap
sudo mkswap /swapfile# 立即启用
sudo swapon /swapfile
2. 查询内存分配
free -h
swapon --show
3. 云服务器持久化配置
- 永久生效:通过修改 /etc/fstab,系统每次启动时会自动挂载 /swapfile作为 Swap 空间。
- 避免手动重复配:解决临时 Swap 配置(如 swapon /swapfile)在重启后失效的问题。
- 安全性:追加写入(-a)确保不破坏原有配置,但仍建议提前备份 /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
六、下载Deepseek模型
官网地址:https://ollama.com/library/deepseek-r1:1.5b
# 下载模型并直接运行模型:
ollama run deepseek-r1:1.5b
相关文章:
《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》
简介: “本文为AI开发者揭秘如何在阿里云2核2G轻量级ECS服务器上,通过Ubuntu系统与Ollama框架实现Deepseek模型的高效部署。无需昂贵硬件,手把手教程涵盖环境配置、资源优化及避坑指南,助力初学者用极低成本在云端跑通行业领先的大…...
Rust闭包详解
文章目录 闭包捕获外部变量移动和借用闭包的特性闭包和性能闭包和生命周期 闭包 Rust中的闭包是一种匿名函数,可以捕获并存储环境中的变量,有点类似于Lambda表达式 闭包允许在其定义的作用域之外访问变量,并且可以在需要时将其移动或者借用…...
科技潮流出行新体验 方程豹全新车型钛3正式开启预售
科技潮流出行新体验,比亚迪个性化品牌方程豹旗下全新车型钛3正式开启预售,钛3定位科技潮品SUV,搭载独有的潮流配置“1机3舱”,以及“iCT”安全三件套、“E2C”智能三件套,实现了科技越级、空间越级、配置越级ÿ…...
如何将AI模型返回的字符串转为html元素?
场景: 接入deepseek模型的api到我们平台,返回的字符串需要做下格式化处理。 返回的数据是这样的: {"role": "assistant","content": "<think>\n嗯,用户问的是“星体是什么”。首先&am…...
使用SpringBoot + Thymeleaf + iText实现动态PDF导出
使用SpringBoot Thymeleaf iText实现动态PDF导出 1.前端模版代码,需要注意,iText有很多高级样式兼用性不好,需要自己试错: <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"…...
Redis 源码硬核解析系列专题 - 扩展篇:Gossip协议的具体实现
1. 引言 Redis Cluster使用Gossip协议实现节点间的状态同步和一致性维护。Gossip协议是一种去中心化的通信机制,通过节点间的“谣言传播”方式交换信息,具有高容错性和扩展性。本篇将深入剖析Redis中Gossip协议的具体实现,包括消息格式、传播机制和故障检测逻辑。 2. Gossi…...
scGPT环境安装
scGPT环境安装 conda create -n scgpt_2 conda activate scgpt_2 conda install python3.10.11 cudatoolkit11.7 cudatoolkit-dev gxx>6.0.0,<12.0 cudnn -c conda-forge pip install torch1.13.0cu117 torchvision0.14.0cu117 torchaudio0.13.0 --extra-index-url https…...
linux服务器组建与管理
环境: DNSSamba服务器 ip:192.168.177.153 FTP服务器 ip:192.168.177.152 pc ip:192.168.177.151 这里先把DNS的ip及DNS固定给固定了,免得我关机了还会更改 网络配置:(前面的命令是DNS/Samba的后面的是FTP的,下面那张是示例图) sudo nmcli con mod ens33 ipv4.addres…...
vue3 生命周期函数(挂载、更新、销毁)
在这之前,相必用户也是用过vue2的经历,所以,在讲解之前先对vue2和vue3的生命周期进行对比: Option API组合APIbeforeCreate-setupcreated-setupbeforeMountonBeforeMountmountedonMountedbeforeUpdateonBeforeUpdateupdatedonUpd…...
树莓派超全系列教程文档--(20)树莓派配置自动息屏
树莓派配置自动息屏 配置自动息屏桌面Raspberry Pi 配置CLI 控制台设置控制台模式自动息屏查看当前自动息屏设置 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置自动息屏 您可以将 Raspberry Pi 配置为在一段时间不活动后自动息屏。默认情况…...
基于 Qt / HTTP/JSON 的智能天气预报系统测试报告
目录 一、项目概述 1.1项目背景 1.2项目目标 二、功能需求 2.1 用户界面功能 2.2 后台功能 三、技术选择 3.1 开发框架与工具 3.2 第三方 API 四、UI设计 4.1界面展示 4.2stylesheet样式 五、代码实现 1.构造函数 2.网络请求响应处理函数 3.处理json数据 4.更新…...
Oracle数据库数据编程SQL<3.7 PL/SQL 触发器(Trigger)>
触发器是Oracle数据库中的一种特殊存储过程,它会在特定数据库事件发生时自动执行。触发器通常用于实现复杂的业务规则、数据验证、审计跟踪等功能。 目录 一、触发器基本概念 1. 触发器特点 2. 触发器组成要素 二、触发器类型 1. DML触发器 2. DDL触发器 3.…...
反常积分和定积分的应用 1
网课 还是得跟上网课的进度。但是不要给自己太大的压力。看到数学题确实有点慌张。老师为什么说写对了不要打对号,我感觉打对号可以给自己充足的正反馈。关键问题就是能做对的题不多。这篇笔记主要整理网课的一些笔记。网课落下的比较多,大概还需要补好…...
Day49 | 11. 盛最多水的容器、16. 最接近的三数之和、33. 搜索旋转排序数组、36. 有效的数独
11. 盛最多水的容器 题目链接:11. 盛最多水的容器 - 力扣(LeetCode) 题目难度:中等 代码: class Solution {public int maxArea(int[] height) {int i0,jheight.length-1,res0;while(i<j){resheight[i]<heig…...
31天Python入门——第20天:魔法方法详解
你好,我是安然无虞。 文章目录 魔法方法1. __new__和__del__2. __repr__和__len__3. __enter__和__exit__4. 可迭代对象和迭代器5. 中括号[]数据操作6. __getattr__、__setattr__ 和 __delattr__7. 可调用的8. 运算符 魔法方法 魔法方法: Python中的魔法方法是一类…...
WPF 浅述IsHitTestVisible属性
WPF 浅述IsHitTestVisible属性 IsHitTestVisible 属性是 WPF 中一个非常重要的属性,它决定了一个控件是否可以作为 hit test 的一部分被检测到。理解这个属性对于处理交互事件(如鼠标点击、触摸等)非常重要。 IsHitTestVisible 属性的含义&am…...
WSN 经典定位算法
WSN 经典定位算法 包括: Centoid, Bounding_box, Grid_Scan, RSSI, DV_hop, MDS_MAP,APIT-WSN Localization/Amorphous/Amorphous.m , 3351 Localization/APIT/APIT.m , 4169 Localization/APIT/PPIT.m , 3889 Localization/Bounding Box/Bounding_Box.…...
LLM 优化技术(1)——Scaled-Dot-Product-Attention(SDPA)
在 Transformer 中抛弃了传统的 CNN 和 RNN,整个网络结构完全由Scaled Dot Product Attention 和Feed Forward Neural Network组成。一个基于 Transformer 的可训练的神经网络可以通过堆叠 Transformer 的形式进行搭建,Attention is All You Need论文中通…...
【深度学习】嘿马深度学习目标检测教程第1篇:商品目标检测要求、目标,1.1 项目演示【附代码文档】
教程总体简介:要求 目标 1.1 项目演示 学习目标 1.1 图像识别背景 1.2 什么是目标检测 1.2.1 目标检测定义 1.2.1.1 物体 1.3 目标检测应用场景 1.3.1 行业 1.3.2 应用类别 1.4 开发环境搭建 目标检测概述 3.1 目标检测任务描述 3.1.4 目标定位的简单实现 项目实现 …...
【蓝桥杯】单片机设计与开发,RTC实时时钟
一、RTC-DS1302概述 二、BCD码 三、三线协议概述 四、RTC的应用 五、DS1302的驱动函数 六、操作流程 七、三线协议驱动程序...
Java 各版本的新特性
Java 各版本的新特性主要集中在提升开发效率、性能优化、语言功能增强和模块化支持等方面。以下是 JDK 8 到 JDK 21(截至2023年)的主要新特性概览: JDK 8 (2014) - LTS Lambda 表达式:支持函数式编程,简化匿名内部类。…...
OpenGL中EBO的使用及原理
EBO 是什么? 在OpenGL中,EBO(Element Buffer Object),也称为索引缓冲对象 IBO(Index Buffer Object),是一种用于存储顶点索引数据的缓冲区对象。它的核心作用是通过复用顶点数据来减…...
应用分享 | AWG技术突破:操控钻石氮空位色心,开启量子计算新篇章!
利用AWG操作钻石中的氮空位色彩中心 金刚石中的颜色中心是晶格中的缺陷,其中碳原子被不同种类的原子取代,而相邻的晶格位点则是空的。由于色心具有明亮的单光子发射和光学可触及的自旋,因此有望成为未来量子信息处理和量子网络的固态量子发射…...
【Ultralytics YOLO COCO 评估脚本 | 获得COCO评价指标】
文章目录 Ultralytics YOLO COCO 评估脚本 (coco_evaluate.py)1. 描述2. 依赖项3. 使用方法4. 输入文件格式5. 输出6. 注意7. 完整代码 Ultralytics YOLO COCO 评估脚本 (coco_evaluate.py) 这是一个 Python 脚本,用于评估以 COCO JSON 格式提供的目标检测结果。它…...
聊一聊,元件封装知多少?
目录 01 | 简 介 02 | 常见的无源器件封装 03 | 集成(IC)类封装 04 | 功率器件类封装 05 | 连接器类封装 06 | 总 结 01 | 简 介 由于平时工作中,经常需要查看封装的样式,以便初步规划PCB布局;遂萌发对常用的元件封装进行一次总结。 …...
企业需要使用防病毒系统保障数据安全的原因
数据作为企业的重要资产,正面临勒索病毒等极大威胁。在复杂严峻的网络安全形势下,企业的业务运营、数据安全和声誉遭遇诸多来自网络的挑战。2023年,国内发生多起严重网络安全事件,例如数据库漏洞导致数据泄露、钓鱼邮件窃取信息、…...
使用无人机进行露天矿运输道路分析
使用无人机进行露天矿运输道路分析 无人机正在彻底改变采矿业,为露天矿场的运输道路收集数据和分析提供了一种新方法。通过使用 UAS 技术,采矿公司可以更全面地了解道路状况,确定磨损区域,并提高安全性和效率。 本文介绍了无人机用…...
基于Vue.js网页开发相关知识:Vue-router
一、基础知识 vue-router 是 Vue.js 官方的路由管理器,用于实现单页面应用(SPA)的路由功能。以下从几个方面对 vue-router 进行详细分析: 1. 核心概念 路由配置 vue-router 通过定义路由配置对象来管理应用的路由。每个路由配置…...
同时使用Telnet和SSH登录思科交换机
同时使用Telnet和SSH登录思科交换机 1. 配置管理IP地址 首先,为交换机配置一个管理IP地址,以便可以通过网络进行远程管理: Switch(config)# interface vlan [VLAN_ID] Switch(config-if)# ip address [IP地址] [子网掩码] Switch(config-i…...
presto行转列
presto的行列转换和spark、hive一样也是通过外链语句实现的,只不过语法和关键子有点不同,如下 with tmp1 as (select 1,2,3 as a1,4,5,6 as a2 ) select * from tmp1 cross join unnest(split(tmp1.a1, ,),split(tmp1.a2, ,) ) as b(a1s,a2s) 结果如下...
App Usage v5.57 Pro版 追踪手机及应用使用情况
手机使用监控神器:让你的手机使用情况一目了然 现代人的生活已经离不开手机——通讯、娱乐、支付、购物…每天我们花在手机上的时间越来越多。你是否好奇: 每天在各个应用上花费了多少时间?一天中查看了多少次手机?哪些应用在后…...
24.3 CogView3多模态生成实战:从API调优到1024高清图像生成全解析
CogView3多模态生成实战:从API调优到1024高清图像生成全解析 CogView3 & CharGLM:多模态生成技术深度解析 关键词:CogView3 API 调用,图像生成与编辑,多模态提示工程,GLM 技术栈集成,参数优化策略 1. 智谱清言平台演示 CogView-3 核心能力 1.1 CogView3 技术架构…...
操作系统高频(六)linux内核
操作系统高频(六)linux内核 1.内核态,用户态的区别⭐⭐⭐ 内核态和用户态的区别主要在于权限和安全性。 权限:内核态拥有最高的权限,可以访问和执行所有的系统指令和资源,而用户态的权限相对较低&#x…...
Ubuntu系统安装Cpolar 实现内网穿透教程
文章目录 方法 1:使用官方脚本快速安装(推荐)方法 2:手动下载安装包配置与使用常见问题 方法 1:使用官方脚本快速安装(推荐) 下载安装脚本 打开终端,执行以下命令下载并运行安装脚本…...
Trustworthy Machine Learning
1. 可信任机器学习的核心概念 1.1 可信任性的定义 稳健性(Robustness): 机器学习模型在面对数据噪声、分布变化或对抗性攻击时仍能维持其预测性能的能力。 公平性(Fairness): 避免 AI 决策对某些群体存在…...
Enovia许可管理系统的特点
在当今竞争激烈的市场环境中,企业对于产品生命周期管理(PLM)的需求日益增加。Enovia许可管理系统,作为一款先进的许可证管理工具,凭借其卓越的特点,助力企业实现资源的高效管理和最大化利用。本文将详细介绍…...
【CSS】样式与效果
个人主页:Guiat 归属专栏:HTML CSS JavaScript 文章目录 1. CSS盒模型1.1 盒模型基础1.2 盒模型类型1.2.1 标准盒模型1.2.2 IE盒模型 2. CSS选择器2.1 基本选择器2.2 组合选择器2.3 伪类和伪元素 3. CSS布局技术3.1 Flexbox布局3.2 Grid布局3.3 定位 4. …...
Python中常用网络编程模块
学习籽料在下方自拿 一、网络基础 网络由下往上分为:物理层、数据链路层、网络怪、传输层、会话层、表示层和应用层。 TCP/IP协议是传输层协议,主要解决数据如何在网络中传输;socket则是对TCP/IP协议的封装,它本身不是协议&…...
python-flask
1.定时任务的时候一定要加--preload,防止 --preload gunicorn --config gunicorn-conf.py --preload index:app 2.source /usr/local/nginx/html/prod/pypd/venv/bin/activate 启动linux的python环境 3.pip freeze > requirements.txt 生成所有依赖 4.p…...
OpenIPC开源FPV之Adaptive-Link信号干扰
OpenIPC开源FPV之Adaptive-Link信号干扰 1. 源由2. 现象3. 分析3.1 冲突弃包3.2 传输丢包 4. 逻辑4.1 可调整参数4.2 可监测参数4.3 逻辑思路 5. 总结6. 参考资料 1. 源由 虽然,OpenIPC作为FPV图传在延时方面使用广播wfb-ng,性能上已经非常棒了。 在权…...
C++ 结构体与函数
一.结构体 1.概念: 结构体(struct)是一种用户自定义复合数据类型,其中可以包含不同类型的不同成员 2.结构体的应用场景: 我们在使用多个变量描述一个对象时,虽然也可以做到,但是难免显得杂乱…...
【Java全栈】Java + Vue 项目框架与运行流程详解
文章目录 ⭐前言⭐一、框架介绍🌟1、后端框架(Java Spring Boot)🌟2、前端框架(Vue 3 Element Plus) ⭐二、项目结构🌟1、后端目录(Spring Boot)🌟2、前端目…...
JAVA:利用 JSONPath 操作JSON数据的技术指南
1、简述 JSONPath 是一种强大的工具,用于查询和操作 JSON 数据。类似于 SQL 的语法,它为处理复杂的 JSON 数据结构提供了简单且高效的解决方案。✨ 代码样例:https://gitee.com/lhdxhl/springboot-example.git 本文将介绍 JSONPath 的基本…...
5.2.1 WPF 通过ItemControl自己做柱状图
1. 最终效果如下图: 1.1 准备数据 ViewModel public class PrimaryItemModel{public double Value { get; set; }public string XLabel { get; set; }}public class MainViewModel{public ObservableCollection<PrimaryItemModel> PrimaryList { get; set; }…...
3.31 代码随想录第三十一天打卡
1049.最后一块石头的重量II (1)题目描述: (2)解题思路: class Solution { public:int lastStoneWeightII(vector<int>& stones) {vector<int> dp(15001, 0);int sum 0;for (int i 0; i < stones.size(); i) sum stones[i];int target sum / 2;for (in…...
基于网启PXE服务器的批量定制系统平台
一.项目背景 公司新购了一批服务器和台式机,需要为台式机和服务器安装系统,一部分需要安装国产OpenEuler,一部分要求安装CentOS 7.9,同时也要满足定制化需求,即按要求分区安装相应软件。 二.项目环境 安装win10/11 …...
Unity光线传播体积(LPV)技术实现详解
一、LPV技术概述 光线传播体积(Light Propagation Volumes)是一种实时全局光照技术,通过将场景中的间接光信息存储在3D网格中,实现动态物体的间接光照效果。 核心优势: 实时性能:相比传统光照贴图,支持动态场景 硬件…...
蓝桥杯备考---》贪心算法之矩阵消除游戏
我们第一次想到的贪心策略一定是找出和最大的行或者列来删除,每次都更新行和列 比如如图这种情况,这种情况就不如直接删除两行的多,所以本贪心策略有误 so我们可以枚举选的行的情况,然后再贪心的选择列和最大的列来做 #include …...
python+playwright 学习-93 结合pands 抓取网页表格数据
playwright 结合 pands 抓取网页表格数据 pandas 直接抓取网页表格数据 web 网页表格数据 """ 上海 202501 天气抓取 """ import pandas as pddf = pd.read_html(fhttp://www.tianqihoubao.com/lishi/shanghai/month/202501.html,encoding...
MVC编程
MVC基本概述 例子——显示本地文件系统结构 先分别拖入ListView,TableView,TreeView 然后在进行布局 在widget.cpp 结果 mock测试 1,先加入json测试对象 2.创建后端目录 3,在src添加新文件 在models文件夹里 在mybucket.h,添加测试用例的三个字段 4.在…...