1. 通用配置
# 设置输出目录和文件名output_dir = "dist"app_name = "CursorAutoFree"# 基础命令行选项base_options = ["--follow-imports", # 跟踪导入"--enable-plugin=tk-inter", # 启用 Tkinter 支持"--include-package=customtkinter", # 包含 customtkinterf"--include-data-dir=src/utils/turnstilePatch=turnstilePatch", # 包含数据目录f"--include-data-files=src/core/names-dataset.txt=names-dataset.txt", # 包含具体的 txt 文件"--include-data-dir=src/config=src/config", # 包含配置目录"--show-memory", # 显示内存使用"--show-progress", # 显示进度"--nofollow-import-to=tkinter.test", # 排除测试模块"--nofollow-import-to=PIL.ImageQt", # 排除 Qt 相关"--remove-output", # 删除之前的输出f"--output-dir={output_dir}", # 输出目录f'--output-file="{app_name}"', # 输出文件名]
2.macos
["--macos-create-app-bundle", # macOS 创建 .app(默认就是 GUI 模式)"--macos-app-icon=src/assets/app_icon.icns", # 添加 macOS 应用图标f'--macos-app-name="{app_name}.app"', # macOS应用名称]
3. windows
["--windows-console-mode=disable", # Windows 禁用控制台"--windows-icon-from-ico=src/assets/app_icon.ico", # Windows 应用图标]
使用 github action 配置自动打包(目前只做了windows)
这里讲一下,nuitka 打包真的很慢;不过打包的应用启动的还挺快
build-windows:runs-on: windows-lateststeps:- uses: actions/checkout@v4- name: Set up Pythonuses: actions/setup-python@v5with:python-version: '3.x'architecture: 'x64'cache: 'pip'cache-dependency-path: |**/requirements*.txt- name: Install Dependenciesrun: |pip install -r requirements.txt- name: Build Windows Executableuses: Nuitka/Nuitka-Action@mainwith:nuitka-version: mainscript-name: CursorAutoFree.pymode: onefileenable-plugins: tk-interinclude-package: customtkinterinclude-data-dir: |src/utils/turnstilePatch=turnstilePatchsrc/config=src/configinclude-data-files: src/core/names-dataset.txt=names-dataset.txtwindows-console-mode: disablewindows-icon-from-ico: src/assets/app_icon.icooutput-filename: CursorAutoFree- name: Upload Windows artifactuses: actions/upload-artifact@v4with:name: CursorPro-Windowspath: build/include-hidden-files: true