Cloudflare Python Workers 正式全面可用
Simon Willison··作者 Simon Willison
关键信息
在 WebAssembly 虚拟机中,标准库的 multiprocessing 和 threading 模块无法正常工作。本地开发使用 pywrangler 命令行工具;它通过 PyPI 上名为 workers-py 的软件包分发,并利用 Pyodide、WebAssembly、V8 和一个约 123 MB 的 workerd 二进制文件模拟完整技术栈。
资讯摘要
经过两年开发,Cloudflare 已将 Python Workers 从预览阶段推进至正式全面可用。该公司现在将 Python 定位为 Cloudflare 开发者平台上一门受到完整支持的一等语言。该平台并非运行传统的原生 Python 进程,而是在 Cloudflare 基于 V8 的 workerd 运行时中使用 Pyodide,将 CPython 解释器编译为 WebAssembly 后执行。这种架构存在重要限制:multiprocessing 和 threading 模块无法在 WebAssembly 虚拟机中正常工作。
Cloudflare 提供 pywrangler,用于创建、测试和部署 Python Workers,不过该工具在 PyPI 上以 workers-py 作为软件包名称发布。其本地环境会在 workerd 中通过 WebAssembly 和 V8 执行基于 Pyodide 的 Python,从而较完整地模拟生产技术栈;作者观察到相关 workerd 二进制文件约为 123 MB。此次公告署名为 Gyeongjae Choi、Dominik Picheta 和 Hood Chatham,其中 Choi 与 Chatham 同时也是 Pyodide 的核心维护者。
资讯正文
经过两年的预览,Cloudflare 在其服务端 Workers 平台上运行 Python 代码的支持现已进入稳定阶段:“Python 现在是 Cloudflare Developer Platform 上的一等语言,并获得全面支持。”
其中一个巧妙之处在于它的实现方式。Cloudflare 通过 Pyodide 将 Python 编译为 WebAssembly,并在其基于 V8 的 workerd 运行时中运行。
这种方式存在一些限制,相关限制已记录在文档中——其中最值得注意的是,`multiprocessing` 和 `threading` 在 WebAssembly 虚拟机中均无法正常工作。
一个尤其有趣的细节是其本地开发环境的实现。Cloudflare 的 pywrangler 开发工具(令人困惑的是,它在 PyPI 上以 workers-py 这一名称发布)可在本地完整模拟其技术栈,包括在一个 123MB 的 `workerd` 二进制文件中,通过 V8 内的 WebAssembly 使用 Pyodide 执行代码。在我的环境中,这个文件最终位于 `node_modules/@cloudflare/workerd-darwin-arm64/bin/workerd`。
Python Workers 体现了 Cloudflare 对更广泛 Python 生态系统的一项重大投入。发布公告署名为 Gyeongjae Choi、Dominik Picheta 和 Hood Chatham,其中 Gyeongjae 与 Hood 都是 Pyodide 的核心维护者。
来源与参考
收录于 2026-09-23