主题
默认打包的 Python 版本现在是 3.14
概述
Flet 0.86.0 为 flet build 和 flet publish 引入了多版本打包的 CPython 支持。打包的 Python 解释器现在可以按构建选择(参见 选择 Python 版本),并且默认是最新受支持的稳定版——目前是 CPython 3.14。更早的 Flet 版本通过单版本的 serious_python 1.x 隐式打包 CPython 3.12。
依赖某些 Python 包的、尚未提供 3.14 预构建 wheel 的应用(通常是带有 C/Rust 扩展、尚未跟上新 ABI 的包),需要固定一个较早的 Python 版本。
背景
多版本 Python 支持在 #6577 中落地,并由 flet_cli/utils/python_versions.py 中的中央注册表跟踪。受支持的简版版本为 3.12、3.13 和 3.14(每个在注册表一侧都固定到特定的 CPython 补丁 + Pyodide 发布)。
默认翻转为最新稳定版,是为了让新项目默认获得最新的 Python。没有固定版本号的现有项目在下次构建时也会开始采用它。
迁移指南
你可以用三种等价的方式固定不同的 Python 版本。选用最适合你项目布局的一种。
在 pyproject.toml 中固定(推荐)
添加或更新 [project].requires-python:
toml
[project]
requires-python = ">=3.12,<3.13"flet build 会解析该说明符,并选取满足它的最高受支持的简版版本。因此 >=3.12,<3.13 解析为 3.12,>=3.13,<3.14 解析为 3.13,>=3.14 解析为 3.14(默认值)。
通过 CLI 标志固定
在每次调用时传入 --python-version:
bash
flet build apk --python-version 3.12
flet publish --python-version 3.12CLI 标志会覆盖 pyproject.toml 中的任何设置。
通过环境变量固定
在运行 flet build 的 shell 中导出 SERIOUS_PYTHON_VERSION:
bash
export SERIOUS_PYTHON_VERSION=3.12
flet build apk在 CI 流水线中很有用,你不想把该标志透传到每个作业。
时间线
- 变更于:
0.86.0
参考
- API 文档:选择 Python 版本
- 问题与 PR:#6577
- 发布说明:Flet 0.86.0