跳转到内容
搜索文档

标准库

最后更新 查看 MarkdownAgent 设置

用 Python 编写的 Workers 由 Pyodide 执行。

Pyodide 是 CPython 到 WebAssembly 的移植——在大多数情况下,它的行为与 CPython(Python 的参考实现——通常简称为 "Python")相同。 针对 Pyodide 运行 CPython 测试套件时,大部分测试都通过了。在大多数情况下,你不需要担心行为差异。

Python Workers 中提供完整的 Python 标准库,但有以下例外:

排除的模块

以下模块在 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 实例之间共享。

这对于临时文件操作很有用,但不应依赖它进行持久存储。使用 KVR2Durable Objects 进行持久存储。

这篇文档对您有帮助吗?