大善人 Cloudflare Workers 现已支持 Python

公告出来了:https://blog.cloudflare.com/python-workers

从今天开始,在公测阶段,您现在可以用 Python 编写 Cloudflare Worker。

这种对 Python 的新支持不同于 Workers 过去对 JavaScript 以外的语言的支持——在本例中,我们直接将 Python 实现集成到 workerd(开源 Workers 运行时)中。所有绑定(包括与 Vectorize、Workers AI、R2、Durable Objects 等的绑定)在第一天都受支持。Python Worker 可以导入流行的 Python 包的子集,包括 FastAPI、Langchain、Numpy 等。没有额外的构建步骤或外部工具链。

为此,我们必须突破所有系统的边界,从运行时本身到部署系统,再到通过网络发布的 Worker 捆绑包的内容。您可以阅读文档,并立即开始使用它。

导入 Python 包

Python Workers 支持 Python 包的子集,这些包由 Pyodide 直接提供,包括 numpy、httpx、FastAPI、Langchain 等。这通过将软件包版本固定到 Pyodide 版本来确保与 Pyodide 运行时的兼容性,并允许 Pyodide 修补内部实现,正如我们在上面的 httpx 中所示。

要导入包,只需将其添加到文件中 requirements.txt ,无需添加版本号。该软件包的特定版本由 Pyodide 直接提供。今天,您可以在本地开发中使用包,在接下来的几周内,您将能够部署在 requirements.txt 文件中定义依赖项的工作器。在本文的后面,我们将展示我们如何考虑管理新版本的 Pyodide 和软件包。

我们维护着自己的 Pyodide 分支,这使我们能够提供特定于 Workers 运行时的补丁,并快速扩展我们对 Python Workers 软件包的支持,同时还致力于将我们的更改上游回 Pyodide,以便整个开发人员生态系统都能受益。

我们才刚刚开始使用 Python Workers

为一种新的编程语言提供真正的支持是一项巨大的投资,远远超出了“hello world”的工作范围。我们非常有意地选择了 Python——它是仅次于 JavaScript 的第二大最流行的编程语言——我们致力于继续提高性能并扩大对 Python 包的支持。

我们感谢 Pyodide 的维护者和更广泛的 Python 社区——我们很乐意收到您的来信。进入 Cloudflare Developers Discord 的 Python Workers 频道,或在 Github 上开始讨论您接下来希望看到的内容以及您希望我们支持哪些 Python 包。

19 个赞

大善人再加一分

3 个赞

是不是可以用来中转chatpgt,直接转接口使用:grin:

2 个赞

虽然不懂,但是大善人就对了

3 个赞

感谢大善人,坐等整活大佬

2 个赞

python 上大分

3 个赞

日行一善

2 个赞

一直看大佬们说cf workers 有没有屌大的解释下这是啥 或者link下?

2 个赞

python的胜利

2 个赞

有没有大佬现身说法,多了哪些可玩性

2 个赞

大善人再加一分

2 个赞

CF牛

2 个赞

CF大善人,我哭死

没看懂…


def py_request_to_js_request(py_request):
    js_headers = Headers.new(py_request.headers)
    return Request.new(py_request.url, method=py_request.method, headers=js_headers)

def js_response_to_py_response(js_response):
  ... # omitted

async def do_request(py_request):
  js_request = py_request_to_js_request(py_request)
    js_response = await fetch(js_request)
    py_response = js_response_to_py_response(js_response)
    return py_response
1 个赞

支持的包还不少:

里面赫然有 openai

1 个赞

要是在支持一个golang 那就起飞了

2 个赞

类似 Serverless,cf托管的轻量服务

1 个赞

感谢cf

1 个赞

是不是再过几年就能等到支持docker了? :smiling_face_with_three_hearts:

Java不安排一下吗 :sweat_smile: