Vercel的Python支持正式可用,可自动识别FastAPI、Flask、Django等框架并配置构建部署,通过Fluid compute处理并发与扩缩容。Python SDK覆盖存储、队列、持久工作流及AI模型,前后端可共享本地开发、预览和发布流程。
Python on Vercel 现已正式可用。你可以使用熟悉的框架、库和工具,构建并运行 Python 应用。
Vercel 会自动识别受支持的框架,并配置构建和部署。应用运行在 Fluid compute 上,由它管理并发请求,并随流量变化自动扩缩容。符合 Python 使用习惯的 SDK,让你可以直接用 Python 操作存储、队列、持久化工作流和 AI 模型。对于全栈项目,Python 后端与前端共享一套工作流,涵盖本地开发、预览部署和生产发布。
十个月前,我们开始着手让 Vercel 成为构建和运行 Python 应用的最佳平台。我们希望这套体验能够契合 Python 开发者已有的工作方式,因此用三个目标来指导决策:
符合 Python 使用习惯的 SDK。使用 Vercel 基础设施时,Python 开发者应该感到熟悉:API 应采用类型注解、async/await 和上下文管理器。
符合 Python 使用习惯的 SDK。使用 Vercel 基础设施时,Python 开发者应该感到熟悉:API 应采用类型注解、async/await 和上下文管理器。
前后端共享一套工作流。Python 应用往往包含 JavaScript 前端,因此开发者应该能够在本地同时运行两者,在同一次预览部署中审查它们,并一起发布或回滚。
前后端共享一套工作流。Python 应用往往包含 JavaScript 前端,因此开发者应该能够在本地同时运行两者,在同一次预览部署中审查它们,并一起发布或回滚。
兼容 Python 生态。运行时应该在 Linux 上使用标准 Python 解释器 CPython,以保持对 Python 开发者已经依赖的包和工具的兼容性。
兼容 Python 生态。运行时应该在 Linux 上使用标准 Python 解释器 CPython,以保持对 Python 开发者已经依赖的包和工具的兼容性。
检验这些目标的第一关,就是把 Python 应用部署到 Vercel 时会发生什么:应用的框架、依赖和项目结构,应该决定它如何构建和运行。
我们一直在努力,让 Python 在 Vercel 上拥有原生般的体验。Vercel 会读取项目的依赖文件,包括由 uv 管理的依赖文件,并自动识别 FastAPI、Flask、Django 和 FastHTML 等框架。由框架定义的基础设施会配置构建和请求路由,并针对不同框架提供支持,通过 CDN 分发静态资源。
对于带有前端的应用,Vercel Services 会将前后端整合到一个项目中。运行 vercel dev 就能同时启动两者,共享的预览部署则让你可以结合实际使用这些后端的前端,测试后端变更。
对于需要从队列或数据库中拉取任务的长期运行 worker,Vercel Daemons 会让容器持续运行,容器中包含你的 Python 代码,以及代码所需的所有包和系统依赖。
Python 后端可能需要存储文件、发送消息、运行持久化工作流,或调用 AI 模型。我们为这些任务构建了 Python SDK,其 API 遵循 Python 的惯例:
覆盖存储、消息、工作流、代码执行、AI 和外部 API 凭证的 Python SDK。
这些 SDK 可以与你的框架和库配合使用。下面的示例展示了它们如何在一个全栈应用中协同工作。
无论是启动新项目,还是部署已有代码,框架指南都介绍了如何在 Vercel 上完成设置和部署。如果你想跟着教程完成一个全栈项目,Python on Vercel 课程会带你构建 FastAPI 后端和 Next.js 前端,然后通过 Services 将它们一起部署。
为了展示这些组件如何协同工作,我构建了一个支持协作的 Web 应用,用于创建和浏览 Python notebook。用户可以创建自己的 notebook,发布后供其他人浏览或 fork,还可以与 AI 助手协作,编写和运行 Python 代码。
这个应用采用 Vite 前端和 FastAPI 后端,使用 PostgreSQL 存储 notebook 源码和聊天记录。Services 将前后端放在同一次部署中,前端通过 CDN 提供服务。
主要组件的协作方式如下:
编辑和运行代码:已登录用户在编辑器中打开自己的 notebook 时,FastAPI 会创建或复用一个运行 Jupyter 的 Vercel Sandbox,让用户代码与应用后端保持隔离。浏览器直接连接 Jupyter,挂载的 Drives 则提供 Python 依赖和工作区文件。
编辑和运行代码:已登录用户在编辑器中打开自己的 notebook 时,FastAPI 会创建或复用一个运行 Jupyter 的 Vercel Sandbox,让用户代码与应用后端保持隔离。浏览器直接连接 Jupyter,挂载的 Drives 则提供 Python 依赖和工作区文件。
保存和发布:浏览器会定期将当前 notebook 发送给 FastAPI。FastAPI 将源码保存到 PostgreSQL,把变更渲染为 HTML,再将结果上传到 Blob。这样,用户无需启动 Python 内核,就能通过 CDN 阅读已发布的 notebook。
保存和发布:浏览器会定期将当前 notebook 发送给 FastAPI。FastAPI 将源码保存到 PostgreSQL,把变更渲染为 HTML,再将结果上传到 Blob。这样,用户无需启动 Python 内核,就能通过 CDN 阅读已发布的 notebook。
共享更新:发布变更后,FastAPI 会通过 Vercel Queues 发送一条消息。每个与浏览器保持连接的后端实例都会收到通知,并通过 WebSockets 发送更新后的 notebook 列表,让用户无需刷新就能看到变化。
共享更新:发布变更后,FastAPI 会通过 Vercel Queues 发送一条消息。每个与浏览器保持连接的后端实例都会收到通知,并通过 WebSockets 发送更新后的 notebook 列表,让用户无需刷新就能看到变化。
辅助编程:Agent 使用 AI SDK for Python,并在 Vercel Workflows 中运行,由后者保存执行状态并重试失败的步骤。聊天记录保存在 PostgreSQL 中,而 notebook 编辑和执行工具则通过已连接的浏览器工作。浏览器通过 FastAPI 将结果传回,以恢复工作流的执行。
辅助编程:Agent 使用 AI SDK for Python,并在 Vercel Workflows 中运行,由后者保存执行状态并重试失败的步骤。聊天记录保存在 PostgreSQL 中,而 notebook 编辑和执行工具则通过已连接的浏览器工作。浏览器通过 FastAPI 将结果传回,以恢复工作流的执行。
GitHub 上的源码包含完整应用及其部署配置。你可以用它探索这些集成方式,也可以把它作为自己 Python 应用的起点。
去年 12 月,由我和 Elvis Pranskevichus 带领的 Gel Data 团队加入 Vercel,负责构建 Python 支持,并继续推进我们的开源工作。
与此同时,我们宣布赞助 Python Software Foundation,并承诺通过基金会资助 Serhiy Storchaka 一年的 CPython 维护工作。截至目前,Serhiy 在 2026 年已向 CPython 主分支提交了 600 多次 commit。
今年,我们还赞助了 PyCon US 和 EuroPython。我和团队在活动中与 Python 开发者交流,了解他们遇到了哪些阻碍。这些交流帮助我们判断接下来应该解决什么问题。
我们还发布了 PEP 827。如果获得接受,它将引入类型操作功能,帮助 FastAPI 等框架提供更简单的 API,减少样板代码,并实现更精确的类型检查。
我们会继续改进 Python SDK、运行时性能,以及面向开发者和编程 Agent 的开发工作流。如果你遇到部署问题,或者发现 Python SDK 缺少某项功能,请在 Vercel Community 分享反馈,帮助团队确定后续工作的方向。
让你的 Agent 查阅 Knowledge Base 中的 Python 指南。
让你的 Agent 查阅 Knowledge Base 中的 Python 指南。
一键部署用 Python 编写的 eve Agent。
一键部署用 Python 编写的 eve Agent。