Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Vorkery python teper obschedostupny
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

Воркеры Python теперь общедоступны

Источник: Cloudflare•24 сентября 2026 г. в 18:43

Воркеры Python теперь общедоступны

Python Workers позволяют разработчикам запускать веб-фреймворки Python и библиотеки оркестрации ИИ нативно в среде выполнения Cloudflare Workers. Вы можете легко интегрироваться с экосистемой Cloudflare, включая D1, R2 и Workers AI, не написав при этом ни единой строки связующего кода на JavaScript.

Два года назад мы представили Python Workers, предоставив возможность запускать приложения на Python в среде выполнения Cloudflare Workers. Наша цель заключалась в том, чтобы сделать написание Workers на Python таким же простым, как на TypeScript, и обеспечить бесперебойную работу экосистемы пакетов и фреймворков Python.

Сегодня Python Workers становятся общедоступными (GA).

Что означает GA? Это значит, что Python теперь является первоклассным и полностью поддерживаемым языком на платформе Cloudflare Developer Platform. Вы можете перенести уже знакомый вам код на Python, библиотеки и паттерны проектирования и легко подключить их к Workers AI, R2, D1, Hyperdrive, Durable Objects, Queues, Workflows и остальным компонентам платформы Cloudflare. Вы также можете запускать популярные фреймворки Python, такие как FastAPI, Django и Flask, внутри Python Workers. Вы даже можете создать Python Worker внутри другого Worker с помощью Dynamic Workers.

Путь развития Python Workers

Интеграция Python в Cloudflare Workers была естественным шагом. Поскольку Workers поддерживает WebAssembly с 2018 года, это предоставило нам идеальную среду для запуска интерпретатора Python, скомпилированного в Wasm. Используя Pyodide, мы смогли быстро обеспечить поддержку широкого спектра приложений на Python в Cloudflare Workers.

Наша цель состояла в том, чтобы создать первую платформу для бесконечно масштабируемых приложений на Python, сделав разработку такой же простой и производительной, как и в любой другой среде.

Функции, которые мы представляем сегодня, являются результатом многолетней работы. Многие разработчики уже создают приложения с помощью Python Workers; сегодня мы делаем эти возможности готовыми к производственному использованию для каждого.

Python теперь является первоклассным языком в среде выполнения Cloudflare Workers

Python Workers теперь нативно поддерживают привязки (bindings) Cloudflare Developer Platform. Раньше использование этих привязок Cloudflare в Python Workers требовало явного преуобразования объектов Python в объекты TypeScript на границе RPC. Например, отправка словаря Python в Cloudflare Queue требовала следующего вспомогательного кода для работы:

Это заставляло разработчиков Python держать в уме среду JavaScript и код при написании Python Workers, и это было частым источником ошибок как для людей, так и для агентов AI. Чтобы решить эту проблему, мы инкапсулировали весь процесс преобразования типов в среде выполнения Workers и в SDK Python. Это позволяет использовать все привязки Cloudflare в питоничном стиле без написания ни единой строки кода на JavaScript, благодаря чему следующий код просто работает:

Веб-фреймворки: FastAPI, Django и Flask

Теперь вы можете запускать свой любимый фреймворк Python, такой как FastAPI, Django или Flask, для создания сервера API в Python Workers. Мы реализовали встроенный коннектор, который вы можете использовать для легкого подключения вашего веб-приложения к Python Workers.

Допустим, у вас есть простое веб-приложение на FastAPI:

В нативных средах вы бы использовали веб-сервер вроде uvicorn для запуска этого приложения.

В Python Workers вы можете запустить то же приложение, используя предоставляемый нами пакет workers.asgi, просто добавив этот фрагмент в свой код:

Аналогичным образом вы можете использовать пакет workers.wsgi для запуска синхронных веб-приложений, таких как Django.

Итак, что же происходит «под капотом»?

В Python существует стандартный контракт взаимодействия веб-приложений с веб-серверами, известный как Интерфейс шлюза веб-сервера (WSGI) или его современный асинхронный аналог ASGI. Этот стандарт позволяет разработчикам создавать приложения, полностью независимые от сервера. При традиционном развертывании веб-серверы вроде Uvicorn или Gunicorn отвечают за обработку множества одновременных клиентских подключений и потоков для масштабирования трафика, в то время как веб-фреймворки вроде FastAPI могут полностью сосредоточиться на логике приложения.

В Cloudflare Workers сама платформа Workers служит веб-сервером. Поскольку наша глобальная сеть уже легко справляется с балансировкой нагрузки и бесконечным масштабированием, нам не нужно изобретать велосипед, запуская сервер внутри Python Workers.

Вместо этого наши коннекторы workers.asgi и workers.wsgi действуют как тонкий, оптимизированный мост. Они преобразуют входящий нативный запрос JavaScript в стандартные структуры WSGI/ASGI, которые ожидают приложения Python, и беспрепятственно возвращают ответ с минимальными накладными расходами. Благодаря этому разработчики Python получают лучшее от обоих миров: вы можете писать и организовывать код, используя ваши любимые веб-фреймворки, в то время как платформа Cloudflare Workers мгновенно масштабирует ваш API по всему миру без необходимости настройки сервера.

Эти коннекторы можно использовать не только с FastAPI, Django или Flask, но и с любым веб-фреймворком Python, использующим интерфейс WSGI или ASGI.

Вы можете найти дополнительную информацию об использовании каждого веб-фреймворка в документации Python Workers.

Использование PostgreSQL и MySQL с Hyperdrive

Если вы создаете приложение на Python с использованием реляционных баз данных, таких как PostgreSQL или MySQL, теперь вы можете интегрировать Hyperdrive в Python Workers.

Ранее Python Workers не поддерживали сокеты TCP, что делало драйверы баз данных недоступными. Чтобы понять, почему это было препятствием, нужно посмотреть на то, как работает WebAssembly. Драйверы баз данных Python, такие как aiomysql или asyncpg, полагаются на модуль сокетов стандартной библиотеки для установления connectий. В стандартной среде этот модуль выполняет системные вызовы POSIX к базовой операционной системе. Внутри песочницы WebAssembly эти сетевые системные вызовы POSIX обычно являются заглушками, которые всегда завершаются ошибкой. Любая попытка открыть стандартный сокет немедленно завершилась бы сбоем. Чтобы решить эту проблему, мы реализовали системные вызовы сокетов с использованием API подключения Workers.

Когда драйвер базы данных пытается открыть TCP-соединение, он проходит через нашу пользовательскую реализацию системных вызовов сокетов. Она преобразует стандартные операции с сокетами Python, такие как открытие соединения и чтение байтов, в соответствующие вызовы JavaScript, используемые средой выполнения Workers. Поскольку это преобразование происходит на уровне системных вызовов, вашим драйверам баз данных вовсе не обязательно знать о лежащей в основе реализации.

Этот мост сокетов делает возможной нашу интеграцию с Hyperdrive. Чтобы использовать Hyperdrive в Python Workers, сначала подключите базу данных к Hyperdrive и настройте привязку в конфигурации Wrangler:

Затем подключитесь к Hyperdrive, используя привычные вам драйверы баз данных:

Вы можете обратиться к документации Hyperdrive Python Workers, чтобы узнать, как использовать Hyperdrive в Python Workers и какие пакеты поддерживаются в настоящее время.

Расширение экосистемы пакетов WebAssembly

Поскольку Python Workers работают внутри песочницы WebAssembly, любые пакеты с нативными расширениями C/C++/Rust должны быть кросс-скомпилированы в WebAssembly для запуска в Python Workers. Однако раньше не существовало стандартного способа кросс-компиляции пакетов Python в WebAssembly. Это означало, что нашей команде приходилось вручную компилировать и размещать пользовательские пакеты WebAssembly. Это сильно ограничивало количество пакетов, которые вы действительно могли использовать в Python Workers.

Мы хотели исправить это и позволить пользователям использовать более широкий набор пакетов. Однако мы не хотели просто создавать пакеты, пригодные только в Python Workers, так как это не принесло бы пользы сообществу. Поскольку Python Workers созданы на базе Pyodide, мы хотели, чтобы экосистема развивалась таким образом, который принесет пользу Pyodide и всему сообществу Python-on-WebAssembly.

С этой целью мы предложили PEP 783, который стандартизирует платформу для запуска Python в средах выполнения браузера под названием PyEmscripten. После более чем года обсуждений и доработок это предложение было принято, что позволило мейнтейнерам пакетов собирать и публиковать пакеты для платформы PyEmscripten и делать их доступными во всех средах, реализующих PyEmscripten.

Мы также стабилизировали существующую цепочку инструментов сборки Pyodide и преобразовали ее в форму, доступную всем мейнтейнерам пакетов, что позволяет разработчикам легко собирать пакеты для платформы PyEmscripten. Кроме того, мы добавили поддержку платформы PyEmscripten в cibuildwheel, чтобы другим было проще внедрить поддержку платформы PyEmscripten.

Хотя экосистема все еще принимает этот стандарт, мы надеемся, что в будущем у каждого пакета Python будет wheel-пакет, работающий с WebAssembly. Мы также активно работаем с основными мейнтейнерами пакетов над добавлением сборок PyEmscripten. Если вы столкнетесь с пакетом, который еще не поддерживается, сообщите нам в Discord или GitHub, и наша команда постарается обеспечить его сборку.

Вы также можете посмотреть наше выступление на EuroPython 2026: «Python везде: состояние Python на WebAssembly», чтобы узнать, как мы это сделали.

Создание ИИ-агентов и пайплайнов на Python

Обширная экосистема пакетов для науки о данных и машинного обучения делает Python естественным выбором для создания интеллектуальных агентов и ИИ-пайплайнов. Но перенос их в Python Workers исторически представлял собой сложность: такие библиотеки, как openai и langchain, полагаются на HTTP-клиенты, такие как requests или httpx, для связи с внешними API. Тем не менее, из-за отсутствия поддержки низкоуровневых операций с сокетами в Python Workers эти HTTP-клиенты работали некорректно.

Чтобы решить эту проблему, мы внесли изменения на уровне вышестоящего ПО (upstream), чтобы гарантировать, что эти HTTP-клиенты могут направлять запросы напрямую через JavaScript fetch API в средах WebAssembly. В сочетании с нашей новой поддержкой низкоуровневых операций с сокетами, описанной в предыдущем разделе, это заставляет весь сетевой стек работать без сбоев внутри Python Workers.

В результате теперь вы можете запускать библиотеки искусственного интеллекта, такие как openai, langchain и mcp, в исходном виде внутри Python Workers. Вы также можете комбинировать их с Workers AI для запуска бессерверного вывода на графических процессорах в сети Cloudflare или проксировать запросы через Cloudflare AI Gateway.

В примере ниже показан способ запуска моделей Worker AI в langchain с использованием пакета langchain-cloudflare:

Что вы можете создать сегодня

Мы собрали коллекцию готовых к продакшену шаблонов в нашем репозитории python-workers-examples. Вот несколько способов комбинирования Python Workers с экосистемой Cloudflare.

Асинхронная оркестрация ИИ

Создание полностекового ИИ-приложения часто означает подключение нескольких служб, таких как хранилище, очереди и вывод. Этот пример показывает, как создать генератор изображений «из изображения в изображение» на базе ИИ исключительно на Python Workers. Он принимает запросы пользователей, помещает их в Cloudflare Queue и использует Workflows для оркестрации шага генерации изображений через Workers AI, а также сохраняет изображение в корзину R2.

Потоковая обработка в реальном времени с помощью Bluesky Jetstream

Потребление потока событий в реальном времени обычно требует выделенного сервера для поддержания соединения. В этом примере мы используем a Python Worker to connect to the ATProto/Bluesky Jetstream WebSocket. Обеспечивая это соединение с помощью Durable Object, Python Worker может поддерживать долгоживущее состояние, гарантируя, что WebSocket-соединение остается активным.

Другие примеры для изучения

Сервер Model Context Protocol (MCP)

Создайте и разверните MCP-сервер, используя официальный пакет Python MCP, чтобы предоставить вашим ИИ-ассистентам доступ к данным на периферии.

Система дополненной генерацией знаний (RAG) с использованием Vectorize

Создание RAG-системы с использованием Workers AI и Vectorize, векторной базы данных Cloudflare.

Примеры кода на Python в документации для разработчиков Cloudflare

Мы обновили нашу документацию по всем продуктам Cloudflare, включив в нее примеры кода на Python. Почти везде, где есть пример кода, показывающий, как что-то сделать на TypeScript, есть и пример кода на Python. Мы стремимся и дальше включать примеры на Python во все наши продукты. Вы можете переключать фрагменты кода между JavaScript, TypeScript и Python в документации для разработчиков.

Что дальше?

Достижение статуса GA — это только начало. У нас много планов по улучшению Python Workers, включая повышение их производительности и эффективности использования памяти, а также поддержку новых пакетов.

Продолжайте рассказывать нам, что вы хотите создавать на Python Workers, а мы продолжим расширять границы возможного. Ознакомьтесь с документацией по Python Workers и начните создавать своего первого Python Worker!

← Все статьи

О чём эта статья

Ещё в разделе «Облака и инфраструктура»

Все →
Анонимность до последней мили: скомпрометированы 333 выходных узла Tor
Nordcloud

Анонимность до последней мили: скомпрометированы 333 выходных узла Tor

Будущее доставки еды уже здесь, и его буквально испробовали сотни человек
Nordcloud

Будущее доставки еды уже здесь, и его буквально испробовали сотни человек

У домашнего робота Astro от Amazon есть поклонники, но ему пророчат «мусорную свалку». Почему компания делает еще одну попытку
Пресса
Amazon

У домашнего робота Astro от Amazon есть поклонники, но ему пророчат «мусорную свалку». Почему компания делает еще одну попытку

Почему Lightwell объединяет бэкпорты зависимостей с работой с апстримом
Red Hat

Почему Lightwell объединяет бэкпорты зависимостей с работой с апстримом

Streamhouse хочет, чтобы ИИ-агенты знали актуальную правду в реальном времени
Nordcloud

Streamhouse хочет, чтобы ИИ-агенты знали актуальную правду в реальном времени

5-минутная демоверсия: Как управлять приложениями в масштабе с помощью Red Hat OpenShift
Red Hat

5-минутная демоверсия: Как управлять приложениями в масштабе с помощью Red Hat OpenShift

Ещё от Cloudflare

Постквантовое будущее веб-конфиденциальности
Cloudflare

Постквантовое будущее веб-конфиденциальности

Агенты — не люди (но в некотором смысле они ими являются)
Cloudflare

Агенты — не люди (но в некотором смысле они ими являются)

Узнайте агентов, задайте условия: новые возможности мониторинга и контроля для персональных агентов
Cloudflare

Узнайте агентов, задайте условия: новые возможности мониторинга и контроля для персональных агентов

Представляем Zero Wire — хаб для расследования критических уязвимостей в Интернете
Cloudflare

Представляем Zero Wire — хаб для расследования критических уязвимостей в Интернете

Как мы сократили задержку сборки DNS в два раза и снизили использование памяти на 85%
Cloudflare

Как мы сократили задержку сборки DNS в два раза и снизили использование памяти на 85%

Серьезно? Отслеживание эксплуатации и исправление уязвимых ключей eMudhra
Cloudflare

Серьезно? Отслеживание эксплуатации и исправление уязвимых ключей eMudhra