Cloudflare 宣布正式公开提供(GA)Python Workers。两年前,Cloudflare 曾将其作为在 Cloudflare Workers 环境中运行 Python 应用的方式推出。通过此举,Python 成为 Cloudflare Developer Platform 中获得官方支持的语言,开发者可以使用知名库和框架,并将其连接到 Cloudflare 服务,而无需用 JavaScript 编写连接层。
新环境支持运行 FastAPI、Django 和 Flask 框架,以及其他兼容 WSGI 或 ASGI 的框架。Cloudflare 提供了 workers.asgi 和 workers.wsgi 等连接器,将 Workers 请求转换为 Python 应用所期望的结构;而 Workers 平台负责处理请求接收、扩展和负载均衡。
与 Cloudflare 服务直接集成
主要的实际变化之一,是能够在 Python 中直接支持 Cloudflare 绑定。此前,将 Python 对象传递给 Queues 等服务,需要使用 Pyodide 和 JavaScript API 手动将其转换为 JavaScript 对象。而现在,Workers 环境和 Python 软件包负责类型转换,使开发者可以使用普通的 Python 语法进行调用。
这包括 Workers AI、R2、D1、Hyperdrive、Durable Objects、Queues 和 Workflows;Cloudflare 还支持使用 Dynamic Workers 在一个 Worker 内创建 Python Worker。
数据库和网络连接
Python 应用现在可以使用 Hyperdrive 连接 PostgreSQL 和 MySQL 数据库。此前,缺乏 TCP 套接字支持一直阻碍着数据库驱动程序在 WebAssembly 中运行,因为这些驱动程序通常依赖网络相关的 POSIX 系统调用。据 Cloudflare 称,该公司通过使用 Workers connect API 实现套接字调用解决了这一问题,因此 aiomysql 和 asyncpg 等驱动程序无需修改即可运行,而不必了解底层环境的细节。
人工智能开发者将面临哪些变化?
现在可以在 Python Workers 中运行 openai、langchain 和 mcp 等库。Cloudflare 还致力于让 requests 和 httpx 等 HTTP 客户端能够在 WebAssembly 环境中通过 JavaScript fetch 转发请求。开发者可以将这些库与 Workers AI 结合,在 Cloudflare 网络中的 GPU 单元上执行推理,也可以通过 Cloudflare AI Gateway 转发请求。
该公司展示了多种应用示例,包括使用 Queues、Workflows、Workers AI 和 R2 编排人工智能任务;通过 Bluesky Jetstream 和 Durable Objects 处理实时事件流;以及结合 Vectorize 构建 MCP 服务器和 RAG 系统。
限制与悬而未决的问题
Python Workers 依赖于使用 Pyodide 编译为 WebAssembly 的 Python 解释器。因此,包含以 C、C++ 或 Rust 编写的原生扩展的软件包,需要针对 WebAssembly 平台进行定制构建。Cloudflare 表示,与提案 PEP 783 相关的 PyEmscripten 标准以及更新后的构建工具将有助于扩展软件包生态,但该公司承认,这一标准仍在持续采用过程中,部分软件包可能尚未得到支持。
certi.news 解读:这一变化并不只是增加一种新的编程语法,而是在构建部署于边缘的 Python 服务时减少对 JavaScript 的依赖。这对拥有 Python 应用或库、并希望将其连接到 Cloudflare 服务的开发团队具有重要意义,但在将现有应用迁移到生产环境之前,仍需检查软件包兼容性和 WebAssembly 的限制。此外,Cloudflare 未来关于改善性能和内存效率、支持更多软件包的承诺表明,公开提供代表着平台达到的重要成熟节点,而不是工作的终点。