首页
/ Flet桌面应用打包教程:将Python应用转换为Windows、macOS和Linux可执行文件

Flet桌面应用打包教程:将Python应用转换为Windows、macOS和Linux可执行文件

2026-02-05 04:04:50作者:瞿蔚英Wynne

你还在为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:安装clangcmakeninja-buildpkg-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

输出目录结构解析

成功打包后,输出目录包含以下关键文件:

  • Windowsbuild/windows/x64/runner/Release/myapp.exe
  • macOSbuild/macos/Build/Products/Release/My Application.app
  • Linuxbuild/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应用转换为原生桌面程序,大幅降低了跨平台部署门槛。本文介绍的基础命令和高级配置已能满足大多数应用场景,如需进一步定制,可查阅以下资源:

下一篇我们将探讨如何为打包后的应用添加自动更新功能和错误报告系统,敬请期待!

本文示例代码已上传至仓库,可通过git clone https://gitcode.com/gh_mirrors/fl/flet获取完整项目。

登录后查看全文
热门项目推荐
相关项目推荐