website/docs/updates/breaking-changes/v0-86-0-removed-pyodide-version-export.md
flet.version.pyodide_version and PYODIDE_VERSION removed:::note This guide is accurate as of Flet 0.86.0. Later releases might add new APIs or additional migration paths.
The breaking changes and deprecations index lists the guides created for each release. :::
Flet 0.86.0 removed the module-level flet.version.pyodide_version attribute
and the matching PYODIDE_VERSION constant. The single fixed-string export no
longer makes sense now that Pyodide is selected per build as part of the
multi-version bundled Python support — the bundled release depends on which
Python version your app pins, not a global default.
Earlier Flet releases used a single Pyodide pin in flet.version to drive the
flet --version output and let tooling read which Pyodide release flet build web would bundle. With
multi-version Python support the
mapping is now Python-version-aware (3.12 → 0.27.7, 3.13 → 0.29.4,
3.14 → 314.0.0). It is loaded on demand from
python-build's date-keyed manifest.json
— the single source of truth shared with serious_python — via
flet_cli/utils/python_versions.py,
so it is no longer hand-maintained.
If you imported the constant somewhere — typically from flet.version —
switch to looking the release up from the new registry.
Code before migration:
import flet.version
print(f"Bundled Pyodide: {flet.version.pyodide_version}")
Code after migration:
from flet_cli.utils.python_versions import get_supported_python_versions
for release in get_supported_python_versions():
print(f" {release.short} → Pyodide {release.pyodide}")
If you only need the version that flet build is about to bundle, resolve
the Python release the same way the CLI does:
from flet_cli.utils.python_versions import (
get_default_python_version,
get_release,
)
release = get_release(get_default_python_version())
print(f"Default Pyodide: {release.pyodide}")
0.86.0