Python 3.12(于2023年10月2日发布)是Python的最新稳定版本之一,相比此前版本(如3.11、3.10等)

2025年最新Python 3.12安装与配置教程 Python是全球最流行的编程语言之一,以简洁语法和丰富生态库著称,广泛应用于Web开发、人工智能、数据分析等领域。本文从下载到实战完整演示了Python 3.12的安装流程,涵盖环境配置、代码验证及常见问题解决。所有步骤均基于官方正版资源,安全可靠。 阅读详情

Python 3.12(于2023年10月2日发布)是Python的最新稳定版本之一,相比此前版本(如3.11、3.10等),它在性能、语法、错误诊断、标准库和开发体验等方面均有重要更新。主要差异包括:

✅ 核心新特性与改进:

  • 更精准的错误消息(Enhanced Error Locations):
    解析器现在能定位到更具体的出错位置(如嵌套表达式中的某个子表达式),并提供更清晰的 ^ 指示和上下文提示,大幅降低调试难度。

  • typing 模块重大演进:

    • 引入 typing.Required 和 typing.NotRequired(PEP 655),支持更精确地标注 TypedDict 中字段的可选性;
    • typing.Self 成为正式特性(PEP 673),简化返回 self 的方法类型注解;
    • typing.TypeVar 支持 bound= 和 contravariant=/covariant= 更细粒度控制(部分已提前支持,3.12进一步完善语义一致性)。
  • f-string 调试简写增强(PEP 701):
    允许在 f-string 中使用 = (带空格)进行自动变量名+值展开(如 f"{x=}" → "x=42"),且支持任意表达式(含函数调用、属性访问等),语法更灵活、容错更强。

  • 性能优化:

    • 字节码指令精简(如新增 COPY、BINARY_OP 替代多条旧指令),CPython 解释器执行速度平均提升约5%(尤其在数值运算和循环中);
    • dict 和 set 的内存占用小幅降低(通过更紧凑的哈希表结构)。
  • 新内置函数与模块变更:

    • 新增 sys.unraisablehook(统一处理无法抛出的异常,如 __del__ 中的异常);
    • pathlib 新增 Path.walk() 方法(替代 os.walk 的面向对象替代方案);
    • unittest 支持 @unittest.skipIf 等装饰器在类方法上正确继承;
    • importlib.metadata 成为默认启用模块(不再需额外安装 importlib-metadata 包)。
  • 弃用与移除:

    • 移除 distutils 模块(自3.12起完全删除,此前版本已弃用);
    • 废弃 asyncio.Task.current_task() 和 asyncio.Task.all_tasks()(推荐使用 asyncio.get_current_task() 和 asyncio.all_tasks());
    • inspect.Signature 对 *args/**kwargs 参数的 kind 判断行为更严格(符合 PEP 614)。

⚠️ 注意:Python 3.12 不再支持 Windows 7/8(仅支持 Windows 10+ 和 Server 2016+),且最低 macOS 版本要求升至 10.13(High Sierra)。

# 示例:Python 3.12 中更强大的 f-string 调试写法
name = "Alice"
age = 30
print(f"{name.upper()=}, {age * 2=}")  # 输出: name.upper()='ALICE', age * 2=60

总体而言,Python 3.12 更注重开发者体验(DX)提升(尤其是错误诊断与类型系统)、现代代码可维护性,以及底层性能渐进式优化,而非激进语法变革。

相比 Python 3.11,Python 3.12 在 asyncio 模块中没有引入突破性新特性(如新调度器或核心协议变更),但有若干关键行为调整、弃用更新和最佳实践强化,主要集中在API 清理、错误处理一致性、调试支持增强及向后兼容性收紧方面。以下是具体差异:

✅ 关键变更与调整:

  1. 弃用 asyncio.Task.current_task() 和 asyncio.Task.all_tasks()(PEP 712)

    • ✅ 推荐替代:
      # ❌ 旧写法(3.12 警告,未来将移除)
      current = asyncio.Task.current_task()
      all_tasks = asyncio.Task.all_tasks()
      
      # ✅ 新写法(自 3.7 引入,3.12 起为唯一标准)
      current = asyncio.current_task()          # 注意:无类方法前缀
      all_tasks = asyncio.all_tasks()            # 同样为模块函数
      
    • ⚠️ 影响:调用类方法会触发 DeprecationWarning,且在 3.14+ 中将彻底删除。
  2. asyncio.create_task() 的 name 参数默认值更明确

    • 现在若未显式传 name=,任务名默认为 f"Task-{id(task)}"(此前版本行为隐含但未规范),便于日志追踪;
    • 若传 name=None,仍会生成默认名(不再视为“无名”)。
  3. asyncio.run() 内部异常传播更严格

    • 当主协程(main())因未捕获异常退出时,asyncio.run() 现在确保 BaseException 子类(如 SystemExit, KeyboardInterrupt)也完整传播,避免意外吞掉关键信号;
    • 同时,asyncio.run() 结束后会自动取消所有仍在运行的非守护任务(此前部分场景可能残留),并等待其完成(带超时),提升资源清理可靠性。
  4. asyncio.Timeout 类正式成为公共 API(PEP 710)

    • 新增 asyncio.timeout(delay) 上下文管理器(推荐替代 asyncio.wait_for() 的常用模式):
      async with asyncio.timeout(5.0):  # 更清晰语义
          await long_operation()
      # 超时自动抛出 asyncio.TimeoutError
      
    • ✅ 优势:比 wait_for() 更轻量(不创建额外 Task)、支持嵌套、可重用、与 asyncio.to_thread() 等现代 API 设计风格一致。
  5. 调试与可观测性增强

    • asyncio.Task.get_coro() 和 get_name() 现在对已取消/已完成任务返回更稳定结果(避免 RuntimeError);
    • asyncio.debug 模式下(PYTHONASYNCIODEBUG=1)新增对 Task.cancel() 调用栈的记录,便于定位取消源头。

❌ 移除/不兼容项:

  • asyncio.ensure_future() 仍保留,但官方文档明确推荐优先使用 asyncio.create_task()(后者专为 asyncio.run() 管理的事件循环设计,语义更清晰);
  • loop 参数在 asyncio 高阶函数(如 create_task, gather)中彻底废弃(3.11 已弃用),强制依赖当前运行循环(asyncio.get_running_loop()),推动无显式 loop 编程范式。

🔧 最佳实践升级建议:

  • ✅ 用 asyncio.timeout() 替代 asyncio.wait_for()(更安全、可读性高);
  • ✅ 统一使用 asyncio.current_task() / asyncio.all_tasks(),删除所有 Task. 类方法调用;
  • ✅ 在测试中启用 asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())(Windows)或检查 uvloop 兼容性(3.12 对第三方事件循环兼容性已验证);
  • ✅ 利用 sys.unraisablehook 捕获 Task.__del__ 中的异步异常(尤其在资源清理逻辑中)。
# Python 3.12 推荐写法示例
import asyncio

async def main():
    # ✅ 使用 timeout 上下文管理器
    try:
        async with asyncio.timeout(3.0):
            await asyncio.sleep(5.0)
    except asyncio.TimeoutError:
        print("操作超时")

    # ✅ 获取当前任务(非 Task.current_task())
    task = asyncio.current_task()
    print(f"当前任务名: {task.get_name()}")

asyncio.run(main())

总之,Python 3.12 的 asyncio 更聚焦于API 正交化、错误处理健壮性、调试友好性,而非功能扩张——这是 CPython 向“稳定、可靠、易维护”异步生态演进的关键一步。
在这里插入图片描述

(1)Python 3.12 环境搭建(Windows版) 运行刚刚下载的安装程序(.exe文件),在安装向导的第一个页面,勾选【Add Python 3.11 to PATH】选项,这将自动将Python添加到系统环境变量中,选择【Install Now】进行默认安装。,在导航栏中,鼠标移到【Downloads】-> 【Windows】,单击【Python 3.12.4】按钮。等待,系统下载完成,下载完成后,点击下载的.exe文件进行安装。在电脑菜单搜索栏,输入cmd,选择【命令提示符】。 阅读详情

相关推荐

python最新版、最近版、最旧版下载(截止至2024年1月2日)

中指定的发布日历,Python 3.10 现在处于其生命周期的“仅安全修复”阶段:3.10 分支只接受安全修复,并且在 2026 年 10 月之前以纯源代码形式不定期发布这些修复。请注意,Python 2.1 仍然不兼容 GPL,但我们 也计划在那里发布一个错误修复版本,Python 2.1.1,具有相同的 兼容 GPL 的许可证。中,这是特定于 Windows 的扩展的集合,包括 COM 支持和 Pythonwin,一个使用 Windows 组件构建的 IDE。在该模块中,删除了许多长期弃用的方法和类。

2201_76028616的博客 5123

最新python3.12安装下载教程+卸载python教程

近期官方发布了Python 3.12.0的稳定版本,Python 3.12.0 是 Python 编程语言的最新主要版本,它包含许多新功能和优化。以下是3.12系列相比3.11主要新特性1.类型注解改进:Python 3.12对类型注解进行了改进,包括支持匿名函数(lambda)的类型注解、支持多个返回值的类型注解、支持在类型注解中使用泛型类型等。2.新的内置函数:Python 3.12引入了一些新的内置函数,如breakpoint()和exec()。

qq_41314882的博客 1万+

2024最新版Python3.12.1的新特性

作为2024年的最新版本,Python 3.12.1是Python 3.12大版本的第一个维护版本。自2013年10月,Python 3.12.0发布以来,Python 3.12成为Python编程语言的最新主要版本,它包含了众多的新功能和优化项目。 Python 3.12.1是最新的维护版本,包含自Python 3.12.0以来的400多个错误修复、构建改进和文档更新。

jackson_lingua的博客 4847

Python 新版来袭!3.12.0 安装教程!!

是一门面向对象的计算机程序设计语言,以简洁和优雅著称,可以用于网络爬虫、web开发、人工智能、机器学习、数据挖掘及分析等工作,是目前最受欢迎的编程语言之一。目前常见的Python版本有Python2和Python3,Python3不向下(Python2)兼容,同时官方明确表示2020年1月1日不再支持Python2,因此强烈建议大家学习。Python3最新版本已经发行到,同时还有3.5、3.6、3.7、3.8、3.9、3.10、3.11系列。课代表把目前常用的各个小版本都放到了一起,大家按需下载即可。

Python栈 1万+

⭐️MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕学Python》

本次使用的Python版本是3.12.2 64位,下载地址是: [https://www.python.org/ftp/python/3.12.2/python-3.12.2-macos11.pkg),注意,新手很容易出错!这个命令是英文的,输入法不要搞错,手工输入的,符号不要搞错。相信新入门的朋友看明白老吕修改的规律了,如果你安装的版本跟老吕的不一样,可以模仿老吕的规律修改。写到这里,大家明白老吕为什么要写上面的版本和目录了吧,其实很简单,以下我说一下。,输入以下代码检查系统自带的Python版本。

Python老吕的博客 7589

二、模型训练与优化遇到的问题1:python=3.10:指定 Python 版本为 3.10。这里为什么指定版本为3.10,有什么依据

选择Python版本时,确保所选版本与我们将要使用的库(如TensorFlow和Keras)兼容是最重要的。Python3.10作为一个稳定且被广泛支持的版本,是一个合理的选择,但如果项目或环境有特定需求,可以根据官方文档选择适合的版本。

FCZlll的博客 1611

快看!Python 3.12更新了什么?

就在今年,Python官方发布了这个语言的3.12预发版本。像往常一样,这个版本更新了大量内容,我也挑选了大部分内容翻译了一下,先一睹为快吧。

z099164的博客 3665

Python 3中哪个版本是稳定的?

Python是一种功能强大且广泛使用的编程语言,Python 3是Python的最新版本系列。在Python 3的发布过程中,有几个版本被认为是稳定版本,包括Python 3.4、Python 3.5、Python 3.6、Python 3.7、Python 3.8和Python 3.9。因此,您需要根据您的项目需求和所使用的第三方库来选择适合的Python版本。您可以根据自己的需求选择适合的Python 3版本。此外,建议您在开始新项目时使用最新版本的Python,以便获得最新的功能和改进。

NoerrorCode的博客 4316

2024年Python3.12.0安装+激活+配置教程,保姆级教学,学好Python的第一步!

Python安装包&Pycharm安装包,永久激活码以打包好,需要的朋友可以直接扫下方优快云官方认证的安全二维码获取👇。2024年最新Python免费电子书,知识点源码资料。

biancheng_syz的博客 4884

Yolov5 多边形标签转换,所有json文件自动转成txt格式[详细过程]

注:labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注,项目源代码已经开源。通过labelme对图进行标注后,得到的是json文件,而Yolov5对数据进行模型构建的时候,读取需要的是txt格式的文件。txt_outer_path——保存txt文本的文件夹的绝对路径。json_name——json_name是json文本的名字。json_floder——读取json的文件夹的绝对路径。

Pandas_007的博客 1万+

银河麒麟v10装Docker实战:在线离线安装与容器部署指南

容器技术作为现代软件交付的核心方式,通过将应用与依赖打包成镜像,实现了环境的一致性与快速部署。Docker作为最流行的容器引擎,其安装与配置是上云和国产化转型中的基础技能。在国产操作系统银河麒麟v10环境中,由于系统兼容性和网络环境的差异,Docker的部署需要特别注意在线与离线两种模式的选择。本文从基础概念出发,结合麒麟v10的实际环境,详细梳理了Docker引擎的安装、镜像加速、存储配置以及MySQL、Redis等常用容器的部署方法,并针对SELinux、cgroup驱动等常见问题给出了解决方案,帮助开

weixin_30431445的博客 145

2025年Python 3.12.0 安装使用全攻略,附详细图文

今天,为大家带来的是2025年Python 3.12.0 安装使用全攻略,附详细图文。2023 年,Python 官方发布了最新的 Python 3.12.0,这次更新带来了不少改进和优化,性能更强,运行更快,功能也更加完善。作为一名 Python 开发者,我们当然要第一时间尝鲜,体验最新版本的 Python! 这篇文章就来手把手教你,如何在 Windows 系统下正确安装 Python 3.12.0,并进行环境配置、版本验证,确保你可以顺利开启 Python 之旅!

stormjun的博客 1万+

卸载python弹框报错:Could not set file security for file ‘D:\Config.Msi\abd5.rbf‘. Error: 5. Verify...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 6487

2023最新!Python3.12于win10环境下的安装配置

此为我记录Python安装,参考了这位博主的文章https://blog.csdn.net/thefg/article/details/128601410。

六月生的博客 5244

GameFramework 框架详解之 Network网络模块 工具链

GameFramework(下面简称GF)Demo中,已经给我们提供了Network模块使用的protobuf使用的动态链接库protobuf-net.dll,但是GF并没有给我们提供protobuf相关的工具链,比如:1.proto文件自动导出对应c#的Packet类和PacketHandler类2.导出Packet类继承IReference以便使用引用池。3.自动生成Packet类和PacketHandler的Id,且保持和服务器Id一一对应。

TxNet 2903

【Frida Android】实战篇4:SSL Pinning 证书绑定绕过 Hook 教程(一)

在前两章中,我们学习了中间人抓包与 Hook 抓包的基础方法,这些方法在理想环境下能够有效获取网络请求数据。但在实际的企业级应用中,出于安全防护需求,很多 APP 会启用证书绑定(SSL Pinning)机制。这种机制会让客户端对服务器证书的校验更为严格,导致常规的抓包方法(即使将 BurpSuite/Charles 证书安装到系统信任区)也无法生效。因此,从本章开始,我们将系统学习 SSL Pinning 机制的绕过技术。SSL Pinning(证书绑定)是客户端校验服务器身份的进阶安全机制。

水滴石穿 1610

【ChatGPT】如何选择不同版本的Python

下面提供一份截止到2025年3月18日的 Python 版本推荐报告,基于多个专业平台(如 Python 官方网站、Real Python、JetBrains Developer Ecosystem Survey、StackOverflow 调查、各大技术博客及发行版公告等)的信息,详细对比了“最新版本”、“稳定的最新版本”、“最稳定的版本”以及“市面上最常用的版本”,并从版本特性、优势、劣势、学习/实验需求、企业生产需求、兼容性与安全性等角度进行综合分析,供各类用户参考。新增了一些语法糖和标准库增强。

W___w_A的博客 1万+

小龙虾 OpenClaw 权限全攻略:轻松激活 elevated (最新版 OpenClaw 自动化任务降智、无权限、无法执行sudo等系统命令、提升 elevated 权限的解决方案)

升级小龙虾 OpenClaw 后权限不足?elevated 报错?📛 本文教你如何正确配置 OpenClaw 权限💻,让自动化任务顺利执行 🚀

XiaoqiangClub的博客 733

Python 3.14 尚未发布,也**不存在**。截至当前(2024年),Python 官方最新稳定版本是 **Python 3.12**(发布于2023年10月2)

**语法范式革命**(如引入函数式核心、模式匹配替代 `if/elif`) | ✅ `match` 语句(3.10)是**增量增强**,非取代;类型提示(`typing`)从注解→运行时支持(3.12 `typing.runtime_checkable`)→ 3.13 `@override` 等,全部向后兼容 | 语言演进以“添加能力”为主,极少删除/重定义基础语法 | | **标准库大规模重组**(如拆分 `urllib`、重设计 `pathlib`) | ✅ 采用 **并行模块共存 + 别名重定向 +

[Blog][Domain] programb.blog.youkuaiyun.com 505

《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

《QEMU/KVM源码分析与应用》学习笔记1 —— 第一章 QEMU与KVM概述

phmatthaus的专栏 1984

T507 buildroot linux4.9之RLT8211F 1000M以太网开发调试

调试T507的gmac,解决该RTL8211F 1000m以太网中调试遇到的问题

目前从事linux驱动开发,多交流多学习吧 688

Python3.12版本的最新特性

如果需要更早版本的特性(如 Python 3.11 的 `Exception Groups` 或 `Task Groups`),也可补充说明。- 解释器加速:Python 3.12 的启动时间和运行时性能进一步提升(相比 3.11 提升约 5-10%)。- `pathlib` 改进:新增 `Path.walk()` 方法,替代 `os.walk()`。- `itertools` 新增 `batched`:用于分批处理可迭代对象。- 使用 `python --version` 检查当前版本。

mrzyun0811的博客 1307

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python 3.12.0rc2 最新版本发布说明

我们强烈鼓励第三方 Python 项目的维护者在此阶段为他们的项目准备 3.12 兼容性,并在必要时在 PyPI 上发布 Python 3.12 轮子,为 3.12.0 的最终版本做好准备。有关 Python 3.12 更改的更多详细信息,请参阅 Python 3.12 中的新增功能。(嘿,核心开发人员,如果此列表中缺少您认为重要的功能,请让 Thomas 知道。许多大大小小的性能改进(如 PEP 709),估计需要 5% 的整体性能改进。许多其他旧的、损坏的和已弃用的函数、类和方法已被删除。

Ben的专栏 1139

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

定了!Python3.12将于今年发布,附体验版下载地址

定了!Python3.12将于今年发布,附体验版下载地址

tingting11232的博客 1466

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

2023最新版Python 3.12.0安装使用指南

进行Python程序开发,首先要安装Python软件;本文按照最新版Python 3.12.0安装步骤做了小结,介绍全部安装使用步骤。

jackson_lingua的博客 4万+

作为 Python 编程语言发展史上的一个重要里程碑,Python 3.12 于 2023 年 10 月 2 日正式发布

1. f-string 解析的全面重构(PEP 701) f-string 自 Python 3.6 引入以来,已成为日常编码的“瑞士军刀”,但此前存在诸多令人抓狂的限制。Python 3.12 通过 PEP 701 对 f-string 的解析器进行了全面重构,使其成为一种可以直接整合到解析器中的正式化语法。这一改动带来了极大的灵活性: 引号嵌套与转义字符:在 3.11 及更早版本中,f-string 表达式内重用外部相同的引号会导致语法错误,且不允许包含反斜杠()。而在 3.12 中,开发者可以在表达式

[Blog][Domain] programb.blog.youkuaiyun.com 435
上一篇: Transformer 是一种基于自注意力(Self-Attention)机制的深度学习模型架构,由 Vaswani 等人在 2017 年的论文
下一篇: Transformer 模型的自注意力(Self-Attention)机制本身是**置换不变的(permutation-invariant)**
Bol5261
Bol5261 新星创作者: Java技术领域 新星创作者: Java技术领域 优质创作者: 学术研究与理论基础技术领域 优质创作者: 学术研究与理论基础技术领域
博客等级 码龄7年 4万+粉丝 1万+原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值