serious_python_windows
Windows implementations of the serious_python plugin
4.5.1
23K downloads/mo
#2078 most downloaded on pub.dev
flet-dev/serious-python
What this package is like to depend on
Last release 24 days ago
31 Jul 2026
Release timing varies
gaps range from 9 days to 2 months
Nearly every release is documented
notes for 49 of 49 stable releases
1 version withdrawn
withdrawn after publishing
3 years old
50 releases · first in 2023
31 releases in the last 12 months
see the full history below
Release timeline
50 releases · Nov 2023 to Jul 2026Releases
latest 50-
4.5.131 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.5.1: sign and verify both XCFramework layers by @FeodorFitsner in #245
Full Changelog: v4.5.0...v4.5.1
Release notes
Open source →- Re-pins the bundled python-build snapshot to 20260730 and
dart_bridgeto 1.7.1. Both exist to sign the Apple XCFrameworks on both layers (seeserious_python_darwin4.5.1); no Python version moved from 20260729 (3.12.13 / 3.13.14 / 3.14.6), and nothing about Windows changed.
-
4.5.029 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.5.0: preserve provider XCFramework signatures through staging by @FeodorFitsner in #244
Full Changelog: v4.4.2...v4.5.0
Release notes
Open source →- Re-pins the bundled python-build snapshot to 20260729 and
dart_bridgeto 1.7.0. Both exist to provider-sign the Apple XCFrameworks (seeserious_python_darwin4.5.0); no Python version moved from 20260727 (3.12.13 / 3.13.14 / 3.14.6).dart_bridge.dllis rebuilt rather than byte-identical — MSVC stamps a build timestamp and PDB GUID into every DLL — but no Windows source changed between 1.6.1 and 1.7.0.
-
4.4.227 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.4.2: Xcode build-provenance keys in iOS framework Info.plists by @FeodorFitsner in #242
Full Changelog: v4.4.1...v4.4.2
Release notes
Open source →- Re-pins the bundled python-build snapshot to 20260727. Its only functional change is to the iOS frameworks'
Info.plist(seeserious_python_darwin4.4.2); no versions moved and the Windows runtime is unchanged from 20260726.
-
4.4.126 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.4.1: OpenSSL privacy manifest for iOS _ssl/_hashlib by @FeodorFitsner in #241
Full Changelog: v4.4.0...v4.4.1
Release notes
Open source →- Re-pins the bundled python-build snapshot to 20260726. Its only functional change is an iOS privacy-manifest fix (see
serious_python_darwin4.4.1); no versions moved and the Windows runtime is unchanged from 20260725.
-
4.4.025 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.4.0: dart_bridge as a dynamic framework on Apple platforms by @FeodorFitsner in #240
Full Changelog: v4.3.6...v4.4.0
Release notes
Open source →- Re-pins the bundled python-build snapshot to 20260725 (
dart_bridge1.5.1 → 1.6.1). 1.6.1 is an Apple-only packaging change (seeserious_python_darwin4.4.0); the Windows runtime is byte-identical to 20260720.
-
4.3.620 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.3.6: Windows UTF-8 startup fix (dart_bridge 1.5.1, python-build 20260720) by @FeodorFitsner in #238
- fix(android): make PEP 734 subinterpreters work (
concurrent.interpreters/InterpreterPoolExecutor) by @ndonkoHenri in #239
Full Changelog: v4.3.4...v4.3.6
Release notes
Open source →- Fix Windows startup when app paths or environment values contain non-ASCII characters. Dart FFI strings arrive as UTF-8, but the Windows boundary passed them straight to the ANSI CRT (
_putenv_s,fopen), corrupting paths/env values through the process code page. The runtime now converts UTF-8 → UTF-16 and uses the wide CRT APIs (_wputenv_s,_wfopen_s), enables Python UTF-8 mode beforePy_Initialize(), setsPYTHONUTF8=1for multiprocessing helpers, and treats embedded env-setup failures as fatal. Delivered viadart_bridge1.5.1 (bundled python-build snapshot re-pinned to 20260720). (flet-dev/flet#6641)
-
4.3.520 Jul 2026 withdrawnNothing published for this version
-
4.3.419 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.3.4: Android
flet debugstale-code fix (flet #6682) by @FeodorFitsner in #235 - Re-pin python-build to 20260719: desktop _pyrepl restored (pydoc/pdb, #236) by @FeodorFitsner in #237
Full Changelog: v4.3.3...v4.3.4
Release notes
Open source →- Fix
ModuleNotFoundError: No module named '_pyrepl'on Python 3.14._pyreplwas pruned from the bundled Windows stdlib as a dev-only / interactive-REPL module, but CPython 3.14'spydoc(andpdb) import it at module load — so any app importingpydoc/pdb/pytest, or a dependency that does (e.g. NLTK →pydoc), crashed at startup._pyreplis no longer pruned. Re-pins the bundled python-build snapshot to 20260719 (previously 20260714). (flet-dev/serious-python#236)
- Bump to 4.3.4: Android
-
4.3.316 Jul 2026Release notes
Open source →What's Changed
- Fix Windows build failure on non-UTF-8 locales (C4819/C2220) by @FeodorFitsner in #234
Full Changelog: v4.3.2...v4.3.3
Release notes
Open source →- Fix
flet build windowsfailing on non-UTF-8 system locales withwarning C4819escalated toerror C2220while compilingserious_python_windows_plugin.cpp(flet-dev/flet#6686). A source comment contained a non-ASCII character (an em dash); on a system whose code page isn't UTF-8 — e.g. code page 936/GBK on Simplified-Chinese Windows — MSVC decodes the UTF-8 source as GBK, can't represent the byte sequence (C4819), and the Flutter template's/WX(warnings-as-errors) turns it into a fatal C2220. The character is removed, and the plugin now compiles with/utf-8so any future non-ASCII source byte is read correctly regardless of the build machine's code page. Bundled Python anddart_bridgeversions are unchanged from 4.3.2.
-
4.3.214 Jul 2026Release notes
Open source →What's Changed
- Bump to 4.3.2: python-build 20260712 (Android mimalloc seccomp crash, mobile _pyrepl restored) by @FeodorFitsner in #230
- Mobile packaging fixes: iOS interdependent-dylib frameworks + Android native-init packages by @ndonkoHenri in #232
- Re-pin python-build to 20260714: iOS _posixshmem restored (multiprocessing imports) by @FeodorFitsner in #233
Full Changelog: v4.3.1...v4.3.2
Release notes
Open source →- Bump the bundled python-build snapshot to
20260714; aligns with theserious_python_*4.3.2 release. The release contains only Android/iOS runtime fixes — no Windows-affecting changes.
-
4.3.110 Jul 2026 -
4.3.009 Jul 2026Release notes
Open source →- Bump
dart_bridgeto 1.5.0 (python-build snapshot20260708): multiprocessing child-interception exports, including the Windows wide-char variantsserious_python_is_mp_invocation_w/serious_python_main_w(→Py_Main) consumed by the flet build template'swWinMain. See theserious_python4.3.0 notes. PYTHONINSPECT=1is no longer set by any platform implementation. It had no effect on the embedded interpreter, but it leaked into the process environment where any real interpreter child (e.g. a serviced multiprocessing worker) would inherit it and hang in interactive mode after its command completed.- Fix
flet build windowsfailing withfile INSTALL cannot find "C:/WINDOWS/System32/vcruntime140_1.dll"for users who have VS Build Tools installed rather than full Visual Studio. The plugin harvests the CRT runtime DLLs (msvcp140.dll/vcruntime140.dll/vcruntime140_1.dll) from%WINDIR%\System32, but Flutter drives the CMake install step with the 32-bitcmake.exebundled in VS Build Tools. Under WOW64 file-system redirection that process seesSystem32transparently rewritten toSysWOW64, which holds the x86 CRT and doesn't containvcruntime140_1.dllat all — so the x64 build copied wrong-arch DLLs and then failed. The CRT directory is now resolved via theSysnativepseudo-folder (visible only to 32-bit processes, mapping back to the real 64-bitSystem32) when present, falling back toSystem32for native 64-bit cmake. See flet-dev/flet#6436.
- Bump
-
4.2.102 Jul 2026Release notes
Open source →- Bump the bundled python-build snapshot to
20260701; aligns with theserious_python_*4.2.1 release. The Windows runtimes are byte-identical to20260630(the release only rebuilds the iOS runtime).
- Bump the bundled python-build snapshot to
-
4.2.001 Jul 2026Release notes
Open source →- Bump the bundled python-build snapshot to
20260630(dart_bridge1.4.1); aligns with theserious_python_*4.2.0 release.
- Bump the bundled python-build snapshot to
-
4.1.129 Jun 2026 -
4.1.025 Jun 2026 -
4.0.022 Jun 2026Release notes
Open source →prepareApp()returns<exeDir>/app; the app's Python sources ship unpacked next to the bundled CPythonLib/DLLs/site-packages(no first-launch extraction). The CMakeLists copiesSERIOUS_PYTHON_APPinto the runner output.- Version bump aligning with the
serious_python_*4.0.0 release.
-
3.0.018 Jun 2026Release notes
Open source →- In-process Python (dart_bridge FFI). The Python lifecycle is absorbed into
dart_bridge.dll/dart_bridge.pyd(fromflet-dev/dart-bridge1.4.0) instead of a socket transport; both Release and Debugdart_bridge.pydship so 3.13/3.14 Debug builds resolve too. - Breaking change: requires Flutter 3.44.2.
CMakeLists.txtresolves the Python version from the generatedpython_versions.properties(a snapshot of python-build'smanifest.json):SERIOUS_PYTHON_VERSIONselects the version; the full version and build date derive from the table, withSERIOUS_PYTHON_FULL_VERSION/SERIOUS_PYTHON_BUILD_DATEleft as escape hatches. Downloads continue to use python-build's date-keyed release scheme.- Remove the scaffold
getPlatformVersionmethod.
- In-process Python (dart_bridge FFI). The Python lifecycle is absorbed into
-
2.0.007 Jun 2026Release notes
Open source →- Breaking change: default bundled Python version is now 3.14 (was 3.12). The plugin downloads
python-windows-for-dart-3.14.zipand bundlespython314.dll/python314.libunlessSERIOUS_PYTHON_VERSION=3.12is set in the build environment. - Multi-version Python support.
PYTHON_VERSIONinwindows/CMakeLists.txtreads fromSERIOUS_PYTHON_VERSION; thepython-builddownload URL and thepython312.lib/python312.dllfilenames are derived from it (e.g.python313.lib,python314.dll).
- Breaking change: default bundled Python version is now 3.14 (was 3.12). The plugin downloads
-
1.0.106 Jun 2026Release notes
Open source →Improvements
- Cache downloaded Python distribution tarballs (
python-android-dart-<py>-<abi>.tar.gz) across builds. ThedownloadDistArchive_*Gradle tasks now write to a persistent cache directory —$FLET_CACHE_DIR/python-build/v<python_version>/if the env var is set, otherwise~/.flet/cache/python-build/v<python_version>/— and useonlyIfModified true+useETag "all"so subsequent builds issue a conditional GET (If-None-Match/If-Modified-Since) againstobjects.githubusercontent.cominstead of re-downloading 30–100 MB per ABI per build. When the upstream release republishes a tarball at the same URL (e.g. a Python patch update under the existingv<py>release), the validators flip and the cache refreshes automatically; otherwise the build skips the download entirely.tempAndMove trueguards against partial downloads being kept in the cache (flet-dev/flet#6555, #208) by @FeodorFitsner.
Bug fixes
- Cache downloaded Python distribution tarballs (
-
1.0.012 May 2026Release notes
Open source →- Breaking change:
--platformargument valuePyodidehas been renamed toEmscriptento match whatplatform.system()returns in the Pyodide runtime, so PEP 508 markers likeplatform_system != 'Emscripten'work consistently.
- Breaking change:
-
0.9.1203 May 2026 -
0.9.1101 Mar 2026 -
0.9.1021 Feb 2026Release notes
Open source →- Android: Add debug logs and deduplicate FFI imports.
- Android: Invalidate extracted assets when version keys change.
-
0.9.931 Jan 2026Release notes
Open source →- Add zipDirectoryPosix to create POSIX-compliant app archives on Windows.
- Enforce C++20 standard for
serious_pythonplugin build. - Fix: Normalize
WINDIRpath for bundled DLLs in CMake. - Fix Logcat logging crash on some Android devices.
-
0.9.822 Dec 2025 -
0.9.718 Dec 2025 -
0.9.602 Dec 2025 -
0.9.501 Dec 2025 -
0.9.421 Oct 2025 -
0.9.319 Oct 2025Release notes
Open source →- Fix: Hidden files in site-packages are skipped when building macOS app.
- Fix: Do not delete package metadata in
.dist-infodirectories (#164).
-
0.9.211 Mar 2025Release notes
Open source →- Breaking change: multiple
--requirementsoptions ofpackagecommand must be passed as--requirements DEP_1 --requirements DEP_2 ...(or-r DEP_1 -r DEP_2 ...) instead of-r DEP_1,DEP_2,...to support dependency specifications with commas, e.g.pandas>=2.2,<3. - Fix site-packages packaging for Pyodide platform.
- Breaking change: multiple
-
0.9.105 Mar 2025Release notes
Open source →- Fix
serious_pythonto work on macOS 12 Monterey and built with Xcode 14.
- Fix
-
0.9.020 Feb 2025Release notes
Open source →- Set
MinimumOSVersionto13.0for generated Python frameworks. - iOS and macOS packaging: Python system libraries are put into
python.bundleto pass App Store verification. - On macOS, Windows, and Linux, application site packages are copied in an unpacked state to the application bundle to speed up the first launch.
- Pyodide 0.27.2
- Python 3.12.9
- Packaging
--cleanupoption replaced with two separate--cleanup-appand--cleanup-packagesoptions. - New packaging options
--cleanup-app-filesand--cleanup-package-filesto specify a list of globs to exclude files and directories from app and site packages. - New packaging
--skip-site-packagesoption to skip site packages installation for faster re-builds. - Packaging
--archoption accepts a list now.
- Set
-
0.8.707 Jan 2025 -
0.8.606 Jan 2025Release notes
Open source →- Added
com.flet.serious_python_android.PythonActivityholder class withmActivityholding a reference to an app MainActivity. Needed forplyer. - Android plugin sets
MAIN_ACTIVITY_HOST_CLASS_NAMEenvironment variable with the name of activity holder class name (com.flet.serious_python_android.PythonActivity). - Android plugin sets
MAIN_ACTIVITY_CLASS_NAMEenvironment variable with a class name of an app MainActivity. - Android plugin sets
ANDROID_NATIVE_LIBRARY_DIRenvironment variable with the path to a directory containing app .so libraries. Needed for patchingctypes.find_library. - Changed behavior of
SERIOUS_PYTHON_ALLOW_SOURCE_DISTRIBUTIONSenvironment variable that should contain a comma-separated list of packages to allow installation from source distribution. - Fixed: iOS
site-packagestoxcframeworksmigration script supports bothlibrary.soandlibrary.{something}.so.
- Added
-
0.8.501 Jan 2025 -
0.8.405 Dec 2024Release notes
Open source →- Copy
site-packages/fluttercontents toSERIOUS_PYTHON_FLUTTER_PACKAGES. - Added
SERIOUS_PYTHON_ALLOW_SOURCE_DISTRIBUTIONSvariable to allow pip installing from source distributions.
- Copy
-
0.8.303 Dec 2024 -
0.8.228 Oct 2024 -
0.8.115 Oct 2024 -
0.8.008 Oct 2024 -
0.7.121 Jun 2024 -
0.7.015 Jan 2024Release notes
Open source →runPython()method to support running Python script.- Updated
flet_exampleto catch program output and errors,sys.exit()support. packagecommand to read dependencies frompyproject.toml.
-
0.6.121 Dec 2023Release notes
Open source →--excludeoption forpackagecommand - to exclude directories and files from Python app package.- Re-create temp Python distributive directory on every run of
packagecommand.
-
0.6.013 Dec 2023Release notes
Open source →--verboseflag - verbose output.--mobileflag - (removes.so) from app dest archive.--webflag for packaging for pyodide.--find-linksoption for installing pip dependencies from alternative sources (indexes).--dep-mappingsfor rewritingfletdependency to eitherflet-embedorflet-pyodide.--req-depsfor adding required dependencies likeflet-embedorflet-pyodide.--platformoption for use withsitecustomize.pyto tweak pip to pull platform-specific packages.- More structured regular output.
- Bump deps versions.
-
0.5.125 Nov 2023 -
0.5.024 Nov 2023 -
0.4.102 Nov 2023 -
0.4.002 Nov 2023