Flet桌面应用打包教程:将Python应用转换为Windows、macOS和Linux可执行文件
你还在为Python应用的跨平台部署烦恼吗?是否希望用户无需安装Python环境就能运行你的程序?本文将带你使用Flet CLI工具,一步到位解决Windows、macOS和Linux系统的可执行文件打包问题。读完本文,你将掌握从环境配置到生成安装包的完整流程,让你的应用轻松触达更多用户。
准备工作:环境配置与依赖安装
在开始打包前,需要确保开发环境中已安装以下工具:
- Python 3.8或更高版本
- Flet SDK核心组件
- Flutter SDK(3.35.1或更高版本)
安装Flet CLI工具
Flet CLI是打包流程的核心工具,通过以下命令安装:
pip install flet-cli
安装完成后,验证CLI版本:
flet --version
配置Flutter环境
Flet基于Flutter实现跨平台能力,需安装对应平台的编译工具链:
- Windows:安装Visual Studio 2022(含"使用C++的桌面开发"工作负载)
- macOS:安装Xcode Command Line Tools
- Linux:安装
clang、cmake、ninja-build和pkg-config
基础打包流程:三行命令完成跨平台构建
Flet CLI提供了统一的打包命令,根据目标平台自动选择最佳配置。以下是三大桌面平台的基础打包指令:
Windows平台
flet build windows --project myapp --output dist/windows
macOS平台
flet build macos --project myapp --output dist/macos
Linux平台
flet build linux --project myapp --output dist/linux
官方构建矩阵显示,Windows版本需在Windows系统编译,macOS版本需在macOS系统编译,Linux版本可在任意系统构建。详细支持矩阵见sdk/python/packages/flet-cli/src/flet_cli/commands/build.py
高级配置:自定义应用信息与权限
修改应用元数据
通过命令行参数自定义应用名称、版本和标识符:
flet build windows \
--project myapp \
--product "My Application" \
--build-version 1.0.0 \
--build-number 100 \
--bundle-id com.mycompany.myapp
添加系统权限
对于需要特殊权限的应用(如访问摄像头、位置),使用--permissions参数:
flet build macos --permissions camera microphone location
macOS应用需配置权限描述文件,可通过--macos-entitlements参数添加:
flet build macos --macos-entitlements "com.apple.security.device.camera=True"
实战案例:计数器应用打包全过程
以经典的计数器应用为例,完整演示从项目创建到生成可执行文件的全过程。
创建示例项目
flet create counter_app
cd counter_app
项目结构如下:
counter_app/
├── main.py
├── requirements.txt
└── assets/
编辑应用代码
修改main.py实现简单计数器功能:
import flet as ft
def main(page: ft.Page):
page.title = "Flet Counter"
count = ft.Text("0", size=40)
def increment(e):
count.value = str(int(count.value) + 1)
page.update()
page.add(
ft.Column([
ft.Text("Click the button to increment:"),
count,
ft.ElevatedButton("Increment", on_click=increment)
], alignment=ft.MainAxisAlignment.CENTER)
)
ft.app(main)
执行打包命令
Windows平台完整打包命令:
flet build windows \
--project counter_app \
--product "Flet Counter" \
--company "Flet Examples" \
--copyright "© 2023 Flet Team" \
--output dist/windows \
--exclude "*.pyc" "venv"
打包完成后,可在dist/windows目录找到可执行文件和相关依赖。
常见问题解决:优化体积与兼容性
减小应用体积
使用--cleanup-packages和--compile-packages参数优化安装包大小:
flet build linux \
--cleanup-packages \
--compile-packages \
--exclude "tests" "docs"
处理依赖冲突
通过--source-packages参数指定特定版本依赖:
flet build windows --source-packages "requests==2.25.1" "numpy==1.21.0"
调试打包过程
添加--verbose参数查看详细构建日志,定位问题:
flet build windows --verbose
输出目录结构解析
成功打包后,输出目录包含以下关键文件:
- Windows:
build/windows/x64/runner/Release/myapp.exe - macOS:
build/macos/Build/Products/Release/My Application.app - Linux:
build/linux/x64/release/bundle/myapp
可通过--output参数自定义输出路径,推荐使用dist/[platform]结构统一管理不同平台的构建结果。
自动化构建:CI/CD集成指南
Flet打包流程可无缝集成到GitHub Actions、GitLab CI等持续集成服务。以下是GitHub Actions配置示例:
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- run: pip install flet-cli
- run: flet build windows --project myapp --output dist/windows
- uses: actions/upload-artifact@v3
with:
name: windows-build
path: dist/windows
总结与进阶方向
通过Flet CLI,开发者只需简单命令即可将Python应用转换为原生桌面程序,大幅降低了跨平台部署门槛。本文介绍的基础命令和高级配置已能满足大多数应用场景,如需进一步定制,可查阅以下资源:
- 官方打包文档:sdk/python/packages/flet-cli/README.md
- 高级构建配置:sdk/python/packages/flet-cli/src/flet_cli/commands/build.py
- 示例项目集合:sdk/python/examples/apps/
下一篇我们将探讨如何为打包后的应用添加自动更新功能和错误报告系统,敬请期待!
本文示例代码已上传至仓库,可通过
git clone https://gitcode.com/gh_mirrors/fl/flet获取完整项目。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00