Cloudflare Python Workers 正式可用

Simon Willison4 天前

Cloudflare 的 Python Workers 在经历两年预览后,现已进入正式可用阶段。Cloudflare 表示,Python 现在已成为其开发者平台上一门“一等、完全支持”的语言。

它是如何运行的

Python Workers 的实现方式值得关注:Cloudflare 通过 Pyodide 将 Python 编译到 WebAssembly,并在基于 V8 的 workerd 运行时中执行。

这意味着开发者可以在 Cloudflare 的服务端 Workers 平台上运行 Python 代码,同时底层仍然延续 Workers 生态中以 V8 和 WebAssembly 为核心的执行模型。

仍然存在的限制

由于运行在 WebAssembly 虚拟机中,Python Workers 并不等同于完整的传统 Python 运行环境。当前比较重要的限制包括:

  • multiprocessing 不可用;
  • threading 不可用;
  • 部分标准库能力会受到 WebAssembly 环境约束。

因此,如果应用依赖多进程、多线程或特定系统级能力,迁移到 Python Workers 前需要重新评估架构。

本地开发体验

Cloudflare 提供了 pywrangler 作为 Python Workers 的开发工具。值得注意的是,它在 PyPI 上的包名是 workers-py,命名上可能会让人产生混淆。

该工具可以在本地模拟完整运行栈,包括:

  • 使用 Pyodide 执行 Python;
  • 在 WebAssembly 中运行;
  • 通过 V8 执行环境承载;
  • 使用 workerd 二进制文件模拟 Workers 运行时。

有开发者观察到,本地依赖中包含约 123MB 的 workerd 二进制文件,例如在 macOS ARM64 环境中可能位于:

node_modules/@cloudflare/workerd-darwin-arm64/bin/workerd

对 Python 生态的意义

Python Workers 的正式可用,意味着 Cloudflare 正在进一步投入 Python 与 WebAssembly 结合的生态。相关发布由 Gyeongjae Choi、Dominik Picheta 和 Hood Chatham 署名,其中 Gyeongjae Choi 与 Hood Chatham 都是 Pyodide 的核心维护者。

对开发者而言,这一变化让 Python 可以更自然地进入边缘计算和 serverless 场景。不过,在采用前仍需重点关注 WebAssembly 环境带来的运行限制,尤其是并发模型和标准库兼容性问题。

评论

请登录后发表观点

暂无数据