Python Workers 重装上阵:Wasm 快照与原生 uv 工具支持

  • 2025-12-30
    北京
  • 本文字数:1284 字

    阅读完需:约 4 分钟

在最近的一篇博客文章中,Cloudflare 概述了其Python Workers的演进历程,包括多项关键增强功能,比如,近乎即时的冷启动、大幅扩展的软件包兼容性,以及由流行的包管理器 uv 驱动的简化工作流。

 

长期以来,Python 面临的一个挑战是启动时间过长,标准 Python 运行时通常需要数秒才能完成启动,尤其是在加载重量级库时。一位 Hacker News 用户在相关讨论帖中说出了社区的普遍困扰:

我对 Python 最大的一个批评点就是其缓慢的冷启动时间。当我将它用作 CLI 脚本语言时尤其明显。一个简单的.py 脚本的启动时间很容易达到 100 到 300 毫秒,而功能相同的 C、Rust 或 Go 程序却能在 10 毫秒内启动。当多个脚本通过管道串联使用时,这种延迟会迅速累积,令人格外沮丧。

 

为解决这一问题,Cloudflare 引入了一种新的架构,利用内存快照(memory snapshots)绕过初始化阶段。此外,由WebAssembly(Wasm)驱动的Python Workers使得这一能力成为可能,因为 Wasm 环境无需启用地址空间布局随机化(Address Space Layout Randomization,ASLR)。ASLR 是操作系统中的一项安全机制,通常会使内存快照变得复杂且不安全。

 

在这篇博客文章中,作者解释说,通过在部署时仅执行一次顶层作用域代码,并捕获 Wasm 线性内存的快照,Cloudflare 能够快速恢复 Worker 实例,从而显著提升启动速度。公司表示,像fastapipydantic这类重量级库的加载时间已从近 10 秒缩短至约 1 秒。基准测试还显示,Python Workers 的启动速度比 AWS Lambda(未启用 SnapStart)快 2.4 倍,比 Google Cloud Run 快 3 倍。

 

此外,Cloudflare 不再局限于预装的有限库的集合,而是转向一个更开放、广泛的生态系统。如今,Python Workers 支持所有与Pyodide兼容的软件包,包括纯 Python 库,以及许多依赖动态 C 扩展的库(如 NumPy、Pandas 和 Pillow)。

 

为有效管理这一生态,Cloudflare 推出了一款集成uv的全新 CLI 工具pywrangler,uv 是一个高性能的 Python 包管理器。开发者可通过标准的 pyproject.toml 文件管理依赖,而 pywrangler 会自动处理将兼容模块打包至边缘环境的复杂细节。

 

此次更新还将 Python 深度整合进了 Cloudflare 的高级功能体系,包括:

  • FastAPI 集成:开发者现在可在两分钟内将完整的 FastAPI 应用全球部署;

  • Agentic AI 与工作流:Python Workers 已集成 Cloudflare Workflows(目前处于 Beta 阶段),支持多步骤、持久化执行,正如 InfoQ 此前的报道,这对数据和 AI 管道具有重要意义;

  • 持久化对象(Durable Objects):Python 开发者现在可直接在边缘构建有状态应用,例如实时聊天室或数据消费者。

 

通过将 Python 视为与 JavaScript 并列的“一等公民”,Cloudflare 正将自身定位为日益壮大的 AI 与数据科学社区的首选平台。此举有效消除了 Python 在无服务器环境中通常面临的“延迟税”,使其成为对性能敏感的生产级应用的可行选择。

 

正如 Dominik Picheta 及 Cloudflare 团队所指出:

Python 的冷启动成本远高于 JavaScript……我们的目标很高,我们正朝着“零冷启动”的目标开展未来的规划。

 

最后,对于希望尝试 Python 的开发者,Cloudflare 目前在免费层中提供了 Workers 服务,每日可处理 10 万次请求。

 

原文链接:

Python Workers Redux: Wasm Snapshots and Native uv Tooling