Python で書いた Worker は Pyodide ↗ で実行されます。
Pyodide は CPython の WebAssembly 移植です。ほとんどの点で CPython ↗(Python の参照実装。一般に「Python」と呼ばれます)と同じ動きをします。 CPython のテストスイートの大半は、Pyodide 上でも通ります。動作の差を気にする必要は、ほとんどありません。
Python 標準ライブラリ ↗ は Python Workers で一通り使えます。次の例外があります。
次のモジュールは Python Workers では利用できません。
- curses
- dbm
- ensurepip
- fcntl
- grp
- idlelib
- lib2to3
- msvcrt
- pwd
- resource
- syslog
- termios
- tkinter
- turtle.py
- turtledemo
- venv
- winreg
- winsound
次のモジュールはインポートできますが、WebAssembly VM の制限により機能しません。
- multiprocessing
- threading
次は存在しますが、削除済みの termios パッケージに依存するためインポートできません。
- pty
- tty
decimal: decimal モジュールには、同じ機能の C 実装(_decimal)と Python 実装(_pydecimal)があります。 利用できるのは C 実装のみです(WebAssembly にコンパイルされています)pydoc: Python 組み込みのヘルプメッセージは利用できませんwebbrowser: 元の webbrowser モジュールは利用できません。
Python Workers は、一時的なメモリ上のファイルシステムを使えます。標準の Python ファイル I/O(例: open()、pathlib.Path)で読み書きできますが、データは Worker isolate が破棄されると失われます。ファイルシステムは、異なる isolate インスタンス間では共有されません。
一時的なファイル操作には使えますが、永続ストレージには頼らないでください。永続ストレージには KV、R2、または Durable Objects を使います。