Python连接AWS实战手册(S3、EC2、Lambda配置全解析)

第一章:Python连接AWS实战手册概述

本手册旨在为开发者提供一套完整、可操作的指南,用于通过Python与Amazon Web Services(AWS)进行高效集成。无论是初学者还是具备一定云经验的工程师,都能从中获得实用的技术路径和最佳实践。

目标读者与技术栈

本手册面向使用Python进行云服务开发的技术人员,涵盖自动化运维、数据处理与服务部署等场景。核心依赖库为 boto3 —— AWS官方提供的Python SDK,支持对EC2、S3、Lambda、IAM等主流服务的编程访问。

环境准备建议

在开始前,请确保完成以下准备步骤:
  • 安装Python 3.7或更高版本
  • 通过pip安装boto3:
    pip install boto3
  • 配置AWS凭证,推荐使用IAM用户密钥,并通过AWS CLI执行:
    aws configure
    ,输入Access Key ID、Secret Access Key、默认区域及输出格式

典型应用场景概览

Python与AWS的结合广泛应用于多个领域,下表列出常见用例及其对应服务:
应用场景AWS服务Python工具/库
文件备份与存储S3boto3.client('s3')
服务器自动化管理EC2boto3.resource('ec2')
无服务器函数调用Lambdalambda_client.invoke()

安全与权限控制

所有连接操作应遵循最小权限原则。建议使用IAM角色或临时凭证(STS)而非硬编码密钥。以下代码片段展示如何使用boto3初始化S3客户端并列出存储桶:
import boto3
from botocore.exceptions import NoCredentialsError

# 初始化S3客户端
s3_client = boto3.client('s3')

try:
    response = s3_client.list_buckets()
    print("可用S3存储桶列表:")
    for bucket in response['Buckets']:
        print(f"- {bucket['Name']}")
except NoCredentialsError:
    print("未找到AWS凭证,请检查配置。")
该示例展示了基础连接逻辑与异常处理机制,是后续深入操作的基础。

第二章:AWS核心服务与Python SDK基础

2.1 理解Boto3架构与AWS认证机制

Boto3作为AWS官方的Python SDK,采用模块化设计,核心由资源层、客户端层和会话管理构成。客户端层直接映射AWS REST API,提供细粒度控制;资源层则封装常用操作,提升开发效率。
认证配置优先级
Boto3按以下顺序加载凭证:
  • 代码中显式传递 credentials
  • 环境变量(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
  • ~/.aws/credentials 配置文件
  • EC2实例角色(IAM Role)
典型认证代码示例
import boto3

session = boto3.Session(
    aws_access_key_id='AKIA...',
    aws_secret_access_key='secret',
    region_name='us-east-1'
)
s3 = session.client('s3')
该代码显式创建会话,参数说明: aws_access_key_id 和 aws_secret_access_key 为安全凭证,region_name 指定服务区域,避免默认区域导致的跨区调用错误。

2.2 配置访问密钥与IAM角色最佳实践

在云环境中,安全地管理身份验证是保障系统安全的基石。优先使用IAM角色而非长期访问密钥,可实现临时凭证自动轮换,降低泄露风险。
最小权限原则配置策略
为角色或用户分配仅满足业务需求的最小权限。例如,仅需读取S3的Lambda函数不应拥有写入权限。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::example-bucket/*"
    }
  ]
}
该策略仅允许访问指定S3存储桶的对象,限制了潜在攻击面。
禁用根账户密钥,启用多因素认证
  • 根账户应仅用于初始化配置,禁用其访问密钥
  • 所有管理员用户必须启用MFA
  • 定期轮换用户密钥,建议周期不超过90天
通过角色委托替代共享密钥,提升跨服务调用安全性。

2.3 使用Boto3连接S3并实现文件操作

在Python中,Boto3是与AWS S3交互的官方SDK,支持上传、下载和管理对象。
安装与配置
首先通过pip安装Boto3:
pip install boto3
配置AWS凭证可通过环境变量、配置文件或IAM角色完成。
连接S3并上传文件
以下代码展示如何初始化S3客户端并上传本地文件:
import boto3

s3 = boto3.client(
    's3',
    aws_access_key_id='YOUR_KEY',
    aws_secret_access_key='YOUR_SECRET'
)

s3.upload_file('local_file.txt', 'my-bucket', 'uploaded_file.txt')
其中,upload_file方法接收本地路径、存储桶名和目标键名。客户端模式提供细粒度控制,适用于复杂操作场景。
常用文件操作
  • 下载文件:使用s3.download_file()
  • 列出对象:调用s3.list_objects_v2(Bucket='bucket-name')
  • 删除对象:执行s3.delete_object(Bucket='bucket-name', Key='file.txt')

2.4 EC2实例的创建、启停与状态监控

EC2实例的创建流程
通过AWS管理控制台或CLI均可创建EC2实例。使用CLI时,命令如下:
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type t3.micro \
    --key-name MyKeyPair \
    --security-groups WebServerSG
该命令基于指定AMI启动t3.micro实例,关联密钥对和安全组。参数--image-id决定操作系统镜像,--instance-type影响计算性能与成本。
实例生命周期管理
EC2支持多种状态操作:
  • 启动:从停止状态恢复运行
  • 停止:关闭实例,保留EBS卷数据
  • 终止:永久删除实例及附加存储
停止实例可节省计算费用,但EBS存储仍计费。
状态监控与告警
利用CloudWatch监控CPU利用率、网络流量等指标,并设置阈值告警,确保服务可用性。

2.5 调用Lambda函数与管理函数版本

在AWS Lambda中,调用函数可通过同步或异步方式实现。同步调用使用RequestResponse调用类型,适用于需要即时响应的场景。
调用方式示例
{
  "FunctionName": "my-function",
  "InvocationType": "RequestResponse",
  "Payload": "{\"key\": \"value\"}"
}
该请求通过API Gateway或CLI触发Lambda执行,Payload为传入参数,InvocationType决定调用行为。
版本与别名管理
使用版本控制可稳定生产环境依赖。发布版本后生成唯一版本号(如$LATEST、1、2),并可通过别名指向特定版本。
版本号描述用途
$LATEST最新开发版本测试阶段使用
1, 2, 3...发布后的不可变版本生产环境引用

第三章:S3存储服务深度应用

3.1 上传下载大文件与分片传输策略

在处理大文件上传与下载时,直接传输易导致内存溢出、网络超时等问题。分片传输成为关键解决方案。
分片上传流程
将大文件切分为多个固定大小的数据块(chunk),并按序上传。服务端接收后合并还原原始文件。
  • 前端使用 File API 获取文件并切片
  • 每片携带唯一标识(如文件哈希 + 分片序号)上传
  • 服务端通过临时存储拼接所有分片
const chunkSize = 5 * 1024 * 1024; // 每片5MB
for (let start = 0; start < file.size; start += chunkSize) {
  const chunk = file.slice(start, start + chunkSize);
  const formData = new FormData();
  formData.append('chunk', chunk);
  formData.append('index', start / chunkSize);
  formData.append('total', Math.ceil(file.size / chunkSize));
  await fetch('/upload', { method: 'POST', body: formData });
}
上述代码将文件按5MB分片,逐个提交至服务端。参数说明:`slice` 方法提取二进制片段,`FormData` 封装请求数据,`index` 标识分片顺序,确保可恢复完整性。

3.2 设置生命周期规则与跨区域复制

生命周期管理策略
通过配置生命周期规则,可自动将对象在不同存储层级间迁移或删除过期数据。例如,在OSS中设置规则,将30天前的文件转为低频访问类型:
{
  "Rules": [
    {
      "ID": "TransitionToIA",
      "Status": "Enabled",
      "Prefix": "logs/",
      "Transitions": [
        {
          "Days": 30,
          "StorageClass": "IA"
        }
      ]
    }
  ]
}
其中 Prefix 指定路径前缀,Days 表示触发天数,StorageClass 定义目标存储类型。
跨区域复制机制
启用跨区域复制后,源Bucket中的对象变更将同步至目标区域Bucket,保障异地容灾能力。需确保源与目标Bucket均开启版本控制。
  • 复制规则基于前缀过滤
  • 支持增量同步与元数据复制
  • 不复制已存在的历史对象

3.3 实现静态网站托管与CORS配置

在现代Web开发中,静态网站托管已成为快速部署前端应用的标准方式。通过云存储服务(如AWS S3、Google Cloud Storage或阿里云OSS),可将HTML、CSS和JavaScript文件直接托管并全球分发。
启用静态网站托管
以AWS S3为例,需在存储桶策略中启用静态网站 Hosting:
{
  "IndexDocument": { "Suffix": "index.html" },
  "ErrorDocument": { "Key": "error.html" }
}
该配置指定入口页面和错误页路径,使存储桶可通过HTTP端点访问。
CORS跨域资源共享配置
为允许前端页面调用后端API,必须设置CORS规则。以下策略允许多源访问:
属性值
AllowedOrigins*
AllowedMethodsGET, POST
AllowedHeaders*
此配置确保浏览器能安全地进行跨域请求,同时保持最小权限原则。

第四章:EC2与Lambda协同自动化实践

4.1 基于事件触发的EC2自动启停方案

在运维成本优化场景中,基于事件触发的EC2实例自动启停是一种高效策略。通过结合CloudWatch Events与Lambda函数,可实现按计划或系统负载动态控制实例状态。
核心实现逻辑
使用Lambda函数响应定时事件,调用AWS SDK控制EC2实例启停:

import boto3

def lambda_handler(event, context):
    ec2 = boto3.client('ec2', region_name='us-east-1')
    instance_id = 'i-1234567890abcdef0'
    
    # 根据事件类型决定操作
    action = event.get('action')
    if action == 'start':
        ec2.start_instances(InstanceIds=[instance_id])
    elif action == 'stop':
        ec2.stop_instances(InstanceIds=[instance_id])
上述代码通过解析事件参数执行启停操作。event中的'action'字段由CloudWatch Event传入,实现灵活调度。
触发配置示例
  • 每日晚上8点自动停止开发环境实例
  • 工作日上午7点自动启动关键服务节点
  • 结合CloudWatch告警事件,在CPU持续低于5%时触发停机

4.2 Lambda函数调用外部API与数据处理

在无服务器架构中,Lambda函数常需与外部API交互以获取实时数据。通过内置的HTTP客户端,函数可发起安全、异步的请求。
异步调用外部服务
使用Node.js示例发起GET请求:

const https = require('https');

exports.handler = async (event) => {
    const options = {
        hostname: 'api.example.com',
        port: 443,
        path: '/data',
        method: 'GET',
        headers: {
            'Authorization': 'Bearer token123'
        }
    };

    return new Promise((resolve, reject) => {
        const req = https.request(options, (res) => {
            let data = '';
            res.on('data', chunk => data += chunk);
            res.on('end', () => resolve(JSON.parse(data)));
        });
        req.on('error', reject);
        req.end();
    });
};
该代码配置HTTPS请求选项,包含认证头,并通过Promise封装响应流,确保异步处理完整。
数据清洗与结构化
获取原始数据后,应进行字段映射、空值过滤和类型转换,确保输出符合下游系统要求。

4.3 利用SNS与CloudWatch实现告警集成

告警机制的基本架构
Amazon CloudWatch 监控资源指标,当达到阈值时触发告警,通过 SNS(Simple Notification Service)发送通知。该集成方案支持邮件、短信、Lambda 调用等多种响应方式。
配置SNS主题
首先创建SNS主题用于接收告警消息:
{
  "TopicName": "cloudwatch-alerts-prod",
  "DisplayName": "Production Alert Notifications"
}
此配置定义了一个名为 cloudwatch-alerts-prod 的SNS主题,可用于订阅多个终端节点。
CloudWatch告警绑定SNS
在CloudWatch中设置告警时,指定SNS主题作为通知目标。例如,当EC2实例CPU使用率持续5分钟超过80%时,自动发布消息到SNS:
  • 指标名称:CPUUtilization
  • 阈值:> 80%
  • 评估周期:5个连续周期
  • 动作:发送通知至SNS主题arn:aws:sns:us-east-1:123:cloudwatch-alerts-prod

4.4 构建无服务器图像处理流水线

在现代云原生架构中,无服务器计算为事件驱动的图像处理提供了高效、可扩展的解决方案。通过结合对象存储与函数计算服务,可实现上传即处理的自动化流水线。
核心组件与流程
图像处理流水线通常包含以下环节:图像上传触发、元数据提取、格式转换与缩略图生成、结果持久化。使用事件通知机制,当图像上传至对象存储(如S3或OSS)时,自动调用无服务器函数进行处理。

import boto3
from PIL import Image
import io

def lambda_handler(event, context):
    s3 = boto3.client('s3')
    for record in event['Records']:
        bucket = record['s3']['bucket']['name']
        key = record['s3']['object']['key']
        
        response = s3.get_object(Bucket=bucket, Key=key)
        image = Image.open(io.BytesIO(response['Body'].read()))
        
        # 生成缩略图
        image.thumbnail((300, 300))
        buffer = io.BytesIO()
        image.save(buffer, 'JPEG')
        buffer.seek(0)
        
        # 上传处理结果
        s3.upload_fileobj(buffer, bucket, f"thumbs/{key}")
该函数监听S3上传事件,使用Pillow库对图像进行缩放,并将缩略图保存至指定目录。参数event包含触发事件的详细信息,context提供运行环境上下文。
性能优化策略
  • 利用冷启动缓存提升函数响应速度
  • 通过异步调用分离主流程与耗时操作
  • 设置合理的内存与超时配置以平衡成本与性能

第五章:总结与进阶学习路径

构建可扩展的微服务架构
在现代云原生应用中,掌握微服务拆分原则至关重要。例如,使用领域驱动设计(DDD)划分服务边界,确保每个服务职责单一。以下是一个基于 Go 的简单服务注册示例:

// RegisterService 注册服务到 Consul
func RegisterService(name, host string, port int) error {
    config := api.DefaultConfig()
    config.Address = "consul.internal:8500"
    
    client, _ := api.NewClient(config)
    registration := &api.AgentServiceRegistration{
        Name: name,
        Address: host,
        Port: port,
        Check: &api.AgentServiceCheck{
            HTTP: fmt.Sprintf("http://%s:%d/health", host, port),
            Interval: "10s",
        },
    }
    return client.Agent().ServiceRegister(registration)
}
持续学习的技术栈路线
  • 深入 Kubernetes 源码,理解 Informer 机制与控制器模式
  • 掌握 eBPF 技术,用于高性能网络监控与安全策略实施
  • 学习使用 OpenTelemetry 实现跨语言分布式追踪
  • 实践 GitOps 工作流,结合 ArgoCD 实现自动化部署
生产环境性能调优案例
某电商平台在大促期间遭遇 API 延迟升高问题,通过以下步骤定位并解决:
  1. 使用 Prometheus 查询 P99 延迟指标突增时间点
  2. 结合 Jaeger 追踪发现数据库查询未命中索引
  3. 分析慢查询日志,添加复合索引优化执行计划
  4. 调整连接池大小从 20 提升至 100,缓解并发瓶颈
工具类别推荐技术适用场景
监控告警Prometheus + Alertmanager指标采集与动态阈值告警
日志处理Loki + Promtail轻量级结构化日志聚合
配置管理Consul + Envoy xDS动态服务配置下发

相关推荐

在AWS Lambda上部署EC2编译的FFmpeg工具——自定义层的方案

AWS Lambda ffmpeg Serverless Compile

Inplayable的博客 963

【Python运维】用Python自动化AWS资源管理:全面解析与实战代码

随着云计算的普及,AWS(Amazon Web Services)成为了企业和开发者的首选平台之一。管理AWS上的资源通常需要手动操作,效率低且容易出错。本文将详细介绍如何通过Python的`boto3`库自动化管理AWS的云资源,涵盖了S3桶的管理、EC2实例的启动与停止、IAM角色的配置、Lambda函数的部署等多个方面。文章提供了大量实用的代码示例和中文注释,帮助开发者快速掌握如何在Python中操作AWS服务。通过使用`boto3`,你可以提高资源管理的效率,避免人为失误,降低成本,提升开发与运维的

一个被知识诅咒的人 1683

【Python运维】用Python自动化AWS资源管理:利用boto3实现高效管理S3桶和EC2实例

随着云计算的普及,AWS(Amazon Web Services)已经成为许多企业和开发者首选的云平台。为了提高工作效率,自动化管理AWS资源成为了一个热门的主题。本文将深入介绍如何使用Python的`boto3`库来自动化管理AWS云资源,特别是S3桶和EC2实例。通过详细的代码示例,本文将展示如何通过Python实现AWS资源的创建、删除、修改以及信息查询等操作。通过这些技术,开发者可以轻松地集成AWS服务到自己的应用中,优化开发和运维的效率。本文还会介绍一些常见的实践和技巧,帮助开发者更高效地管理和监

一个被知识诅咒的人 1154

【Python云原生开发秘籍】:3小时精通Boto3与AWS SDK集成

掌握Python与AWS高效集成方法,本教程系统讲解Boto3与AWS SDK核心应用,涵盖S3、EC2、Lambda等服务实战场景。深入解析身份认证、资源管理与自动化部署技巧,提升云原生开发效率。python aws 使用教程全面覆盖常见问题与最佳实践,值得收藏。

InstrFun的博客 632

利用AWS EventBridge,Lambda实现EC2状态监控并发布到DingDing群组

这篇文章的内容主要是聚焦于监控功能。AWS内部集成了CloudWatch组件用于监控用户的各种实例,支持事件产出,曲线图定制,也可以很方便地通过SNS将告警通过邮件推送出来(国内手机不支持SMS)。考虑到AWS在国内的应用场景,通常是企业自有的基础设施与AWS配合使用,如何整合监控对象,并在一个统一的平台上展示、推送(钉钉或其他IM工具),这才是需要解决的问题。目前在网络上有很多相关视频和文章资料,但都是一个个模块单独介绍,本文尽量给出一个应用场景实施的全貌。...

weixin_43566195的博客 813

在AWS Lambda上部署标准FFmpeg工具——Docker方案

Docker Lambda 无服务 Serverless ffmpeg

Inplayable的博客 927

使用AWS Lambda的CloudWatch事件通知

CloudWatchEvents的主要用例是跟踪整个AWS基础架构中的更改。 当前,它支持在Auto Scaling组,EC2,EBS和其他各种事件中发出的事件。 为了对这些事件进行有意义的处理,我们需要一种消耗它们的方法。 AWS使用术语“ targets来指代任何想要消耗事件并支持AWS Lambda以及其他几个东西的事物。 在本文中,我们将看到如何设置AWS Lambda函数以使用...

最佳 Java 编程 1346

在AWS Lambda中使用FFmpeg处理m3u8视频流

AWS Lambda S3 FFmpeg

Inplayable的博客 1409

REA 逆向分析完整教程:一条命令把本地逆向交给 AI Agent

REA(npm 包名 `rea-agents`,npm 发布版 6.4.0)是一个 MCP 服务器(Model Context Protocol,AI Agent 调用外部工具的开放协议)加 CLI 的组合。它解决的问题很具体:把你手头的逆向分析——原生二进制、JavaScript/Electron 应用、.NET 程序集、网站——交给 Agent 在本地执行,而不再是你打开反汇编器一行行翻。核心

gitblog_00773的博客 1031

AWS四大基石:EC2、S3、IAM、VPC协同原理与生产级实操

云服务权限控制与资源调度是现代运维的核心能力。从基础概念看,IAM定义访问契约,S3提供对象存储抽象,EC2承载计算实例生命周期,VPC构建网络隔离边界;其底层原理在于四者通过策略联动、事件触发与流量路由形成闭环控制流。这种组合能力直接决定系统安全性、可观测性与成本效率,广泛应用于电商高并发架构、IoT边缘数据回传、混合云笔记存储等场景。本文聚焦真实生产环境中95%以上故障发生的交界地带——即EC2启动流程、S3权限决策链、IAM策略逻辑电路、VPC子网流量调度的深度协同机制。

weixin_34318326的博客 363

AWS Lambda实战排错指南:从S3触发到冷启动优化

无服务器计算(Serverless)是一种按需执行、自动伸缩的云原生架构范式,其核心在于将运维抽象化,让开发者聚焦业务逻辑。AWS Lambda作为主流实现,本质是事件驱动的函数即服务(FaaS),执行环境由内存配置隐式决定CPU与网络资源。技术价值体现在极致弹性、毫秒级计费和免运维部署,广泛应用于图片处理、IoT数据清洗、API后端等实时数据流场景。本文基于真实生产环境27个Lambda函数的调优经验,深入解析S3事件触发链路、VPC网络卡点、PIL依赖打包陷阱及冷启动优化技巧,特别涵盖Python运行时

weixin_34318326的博客 495

用 AWS CDK 自定义资源在 VPC 中构建 EC2 Instance Connect Endpoint:aws-cdk-examples 源码实战解析

本文围绕 aws-cdk-examples 仓库中的 `typescript/ec2-instance-connect-endpoint` 示例,讲解如何通过一个自研 CDK Construct(`InstanceConnectEndpoint`)+ 异步 Custom Resource 机制,在 VPC 的隔离子网中创建 EC2 Instance Connect Endpoint(EIC End

gitblog_00629的博客 632

Lambda + Cloud Watch + EC2, 在AWS上每天定时启动关闭实例和运行脚本

准备 我们将要用到的AWS的服务包括: EC2, 即云端虚拟机,将用于运行我们的脚本。 Lambda, 用于操作我们的EC2实例,即启动和关闭。 IAM, AWS Identity and Access Management, 用于赋予Lambda函数操作我们EC2实例的权限。 Cloud Watch, 用于定时执行我们的Lambda函数,达到定时开关机的效果。 1:下面先建好EC2 后,就可以建IAM role 了,注意在建role 的时候,要先新建policy: 在建立政策选项卡,将以.

shenghuiping2001的专栏 1449

【Python知识地图】云服务:AWS与Python集成

Amazon Web Services(AWS)是一个广泛使用的云计算平台,提供了各种云服务,如计算、存储、数据库、机器学习等。Python 是一种流行的编程语言,广泛用于开发和自动化任务。通过将 AWS 与 Python 集成,可以利用 AWS 提供的强大功能来构建和管理应用程序。本文将详细介绍如何使用 Python 与 AWS 集成,包括安装和配置 AWS SDK、常用服务的操作示例和最佳实践。

科技改变人类,技术成就未来 1179

实现 AWS EC2 自动启停的完整 CloudFormation 和 Python 脚本项目

AWS CloudFormation 是 AWS 提供的基础设施即代码服务,允许用户使用模板文件以声明性的方式自动化创建和管理 AWS 资源。这种方式简化了基础设施的部署和版本控制,确保了跨环境的配置一致性。在定义 AWS CloudFormation 模板时,需要精确指定每个资源的属性。对于 EC2 实例,包括实例类型、AMI、安全组、密钥对等。定义这些属性有助于确保在部署时,EC2 实例能够按照预期配置启动。

weixin_28895791的博客 713

汇川伺服Modbus-RTU通讯实战:从帧结构解析到西门子PLC配置

本文详细解析了汇川伺服与西门子PLC通过Modbus-RTU协议进行通讯的实战步骤,包括帧结构解析、硬件连接、参数设置及PLC程序配置。通过具体案例和常见问题排查指南,帮助工程师快速掌握工业自动化中的通讯技术,提升设备调试效率。

weixin_33670713的博客 453

aws lambda使用_使用AWS Lambda的CloudWatch事件通知

aws lambda使用 CloudWatchEvents的主要用例是跟踪整个AWS基础架构中的更改。 当前,它支持跨Auto Scaling组,EC2,EBS和其他各种事件发出的事件。 为了对这些事件进行有意义的处理,我们需要一种消耗它们的方法。 AWS使用术语“ targets来指代任何想要消耗事件并支持AWS Lambda和其他几个东西的事物。 在本文中,我们将看到如何设置AWS L...

最佳 Java 编程 608

用示波器抓一次MIPI D-PHY的波形,手把手教你读懂HS模式和LP模式的切换时序

本文详细解析了MIPI D-PHY信号的双模切换机制,包括高速模式(HS)和低功耗模式(LP)的波形捕获与诊断技巧。通过示波器设置、关键状态分析和实战案例,帮助工程师快速定位信号完整性问题,提升调试效率。

weixin_30696427的博客 456

Python操作AWS服务全攻略(Boto3深度解析)

掌握Python操作AWS服务的完整方法,本教程系统讲解Boto3库的使用技巧,涵盖S3、EC2、Lambda等主流服务应用场景。通过代码示例实现自动化运维与资源管理,提升云开发效率。是Python AWS使用教程中的实用指南,值得收藏。

ProceNest的博客 848

AxMath行间公式转化为office公式求和符号以及编号显示问题

AxMath行间公式转化为office公式求和符号以及编号显示问题问题描述解决方法 问题描述 首先打出axmath公式,如下: 转换后的OfficeMath公式: 字体先不说,word公式字体默认cambria math且无法编辑。比较难受的一点是求和符号与后面的 ai+bi2a_i+b_i^2ai​+bi2​比例不匹配啊!正常的比例应该是: (虽然也不太正常,将就下) 解决方法 点击变换后的office公式右侧,选择更改为"显示" 可以看到,多了一些软回车符号(⬇),如果你想删除它,不要直接选中

weixin_43543177的博客 4649

【Proteus仿真】51单片机+DAC0832+LM358放大电路波形发生器

【Proteus仿真】51单片机+DAC0832+LM358放大电路波形发生器

perseverance51博客 5786
上一篇: Python自动化测试脚本性能优化秘籍:响应速度提升80%的3个关键点
下一篇: 从使用者到贡献者,Python开发者必经的4个蜕变阶段
QuickDebug
博客等级 码龄1年 152粉丝 2013原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值