INTEGRITY Dokumentace

Jak fungují Python Workers

Workers napsané v Pythonu spouští Pyodide. Pyodide je CPython (referenční implementace jazyka Python, běžně označovaná jednoduše jako „Python“) zkompilovaná do WebAssembly.

Když píšete Python Worker, váš kód interpretuje přímo Pyodide uvnitř V8 izolátu. Více informací najdete v Jak Workers funguje a zjistěte více.

Lokální vývoj

Základní Python Worker obsahuje soubor Python s Default třída rozšiřující WorkerEntrypoint, jako například:

from workers import Response, WorkerEntrypoint

class Default(WorkerEntrypoint):
    async def fetch(self, request):
        return Response("Hello world!")

...a Konfigurační soubor Wrangler která odkazuje na tento .py soubor:

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "hello-world-python-worker",
	"main": "src/entry.py",
	// Set this to today's date
	"compatibility_date": "2026-08-28"
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "hello-world-python-worker"
main = "src/entry.py"
# Set this to today's date
compatibility_date = "2026-08-28"

Když spustíte uv run pywrangler dev abyste prováděli místní vývoj, běhové prostředí Workers provede toto:

  1. Určete, která verze Pyodide je vyžadována na základě data kompatibility
  2. Nainstalujte všechny balíčky potřebné podle vašeho pyproject.toml soubor
  3. Vytvořte nový v8 isolate pro váš Worker a automaticky vložte Pyodide
  4. Poskytujte svůj kód Python pomocí Pyodide

Nejsou potřeba žádné další nástroje ani kroky předkompilace. Prostředí pro spouštění Pythonu poskytuje přímo Workers runtime, stejně jako u Workers napsaných v JavaScriptu.

Viz Příklady v Pythonu kde zjistíte, jak používat Python v rámci Workers.

Životní cyklus nasazení a optimalizace studeného startu

Aby se zkrátila doba cold startu, Cloudflare při nasazení Python Workeru provede co nejvíce nákladné práce předem, v době nasazení. Když spustíte uv run pywrangler deploy, dojde k následujícímu:

  1. Wrangler nahraje váš kód v Pythonu a všechny balíčky obsažené ve vašem pyproject.toml k Workers API.
  2. Cloudflare odešle váš kód v Pythonu do runtime Workers k ověření.
  3. Cloudflare vytvoří pro váš Worker nový v8 isolate a automaticky do něj vloží Pyodide.
  4. Cloudflare spustí vstupní modul (entrypoint) Workeru a vše, co tento modul importuje na nejvyšší úrovni, a poté vytvoří snapshot lineární paměti WebAssembly Workeru. Nákladnou inicializační práci tak fakticky provádíme při nasazení, nikoli za běhu.
  5. Cloudflare nasadí tento snapshot společně s kódem Pythonu vašeho Workeru do sítě Cloudflare.

Když do vašeho Workeru přijde požadavek, načteme tento snímek a použijeme ho k nastartování Workeru v izolátu, čímž se vyhneme nákladné inicializaci:

Diagram znázorňující nasazení Python Workers do Cloudflare

Viz článek na blogu představující Python Workers další podrobnosti o optimalizacích výkonu a o tom, jak runtime Workers snižuje počet cold startů u Python Workers.

Verze Pyodide a Pythonu

Nová verze Pythonu vychází každý rok v srpnu, nová verze Pyodide o šest (6) měsíců později. Jakmile tato nová verze Pyodide vyjde, přidáme ji do Workers, přičemž ji podmíníme příznakem kompatibility, který se zapne až po zadaném datu kompatibility. Díky tomu můžeme průběžně poskytovat aktualizace bez rizika nekompatibilních změn a rozšiřujeme tím stejný závazek, jaký jsme dali pro JavaScript, i na Python.

Každá verze Pythonu má podpora po dobu pěti (5) let. Jakmile toto podpůrné období pro danou verzi Pythonu skončí, přestávají se pro ni vydávat bezpečnostní záplaty, a spoléhat se na tuto verzi již není bezpečné. V souladu se zásadou Workers Runtime nikdy nenarušit aplikaci běžící v produkci budou stávající Python Workers na verzích mimo podpůrné období nadále fungovat. Pro nové projekty však použití verzí Pythonu mimo podpůrné období nedoporučujeme a chyby vzniklé používáním těchto verzí neopravujeme. Rovněž nemůžeme zaručit, že tyto starší verze Pythonu netrpí sníženým výkonem, včetně vyšší latence nebo vyššího využití CPU.