WASM limitations
Browser notebooks use Pyodide, so Python runs inside WebAssembly. These limitations are expected for browser-local compute.
Package support
Pure Python
Pure Python packages from PyPI often work with micropip.install().
Pyodide packages
Common scientific packages available in Pyodide can be imported directly or installed from the Pyodide package set.
Native extensions
Packages requiring C, Rust, Fortran, system libraries, sockets, or subprocesses usually do not work unless Pyodide ships a compatible build.
Browser limits
Memory, CPU, file access, and network access are constrained by the browser.
Install package example
import micropip
await micropip.install("plotly")
import plotly.express as px
Check Pyodide package support at pyodide.org.
Operational limits
- No normal multiprocessing or background server processes.
- No GPU/CUDA access from the browser runtime.
- External HTTP fetches depend on remote CORS headers.
- Browser memory pressure can terminate heavy notebooks.
- Files live in a browser-backed virtual filesystem until saved through ozeye.
Detect browser runtime
import sys
if "pyodide" in sys.modules:
# Browser/WebAssembly runtime
...