You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下PyInstaller打包CustomTkinter报错,请求排查原因

问题:PyInstaller打包CustomTkinter程序报错(Mac OS)

我按照官方文档尝试使用PyInstaller打包CustomTkinter程序,但未成功。我使用Mac OS系统,执行命令:

pyinstaller --noconfirm --onedir --windowed --add-data "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/customtkinter;customtkinter/" “TROLL.py”

出现如下报错:

usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME] [--add-data <SRC;DEST or SRC:DEST>] [--add-binary <SRC;DEST or SRC:DEST>] [-p DIR] [--hidden-import MODULENAME]
                   [--collect-submodules MODULENAME] [--collect-data MODULENAME] [--collect-binaries MODULENAME] [--collect-all MODULENAME] [--copy-metadata PACKAGENAME]
                   [--recursive-copy-metadata PACKAGENAME] [--additional-hooks-dir HOOKSPATH] [--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES] [--key KEY] [--splash IMAGE_FILE]
                   [-d {all,imports,bootloader,noarchive}] [--python-option PYTHON_OPTION] [-s] [--noupx] [--upx-exclude FILE] [-c] [-w] [-i <FILE.ico or FILE.exe,ID or FILE.icns or Image or "NONE">]
                   [--disable-windowed-traceback] [--version-file FILE] [-m <FILE or XML>] [--no-embed-manifest] [-r RESOURCE] [--uac-admin] [--uac-uiaccess] [--win-private-assemblies]
                   [--win-no-prefer-redirects] [--argv-emulation] [--osx-bundle-identifier BUNDLE_IDENTIFIER] [--target-architecture ARCH] [--codesign-identity IDENTITY] [--osx-entitlements-file FILENAME]
                   [--runtime-tmpdir PATH] [--bootloader-ignore-signals] [--distpath DIR] [--workpath WORKPATH] [-y] [--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL]
                   scriptname [scriptname ...]
pyinstaller: error: argument --add-data: invalid add_data_or_binary value: '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/customtkinter;customtkinter/'

我查阅了官方文档,但未找到对应问题的解决方案,请问该错误产生的原因是什么?

错误原因及解决办法

  • 路径分隔符不匹配:Mac OS属于类Unix系统,PyInstaller的--add-data参数中,源路径和目标路径的分隔符需要用冒号(:),你误用了Windows系统的分号(;),这是导致参数识别失败的核心原因。
  • 中文引号干扰:命令中“TROLL.py”使用了中文双引号,PyInstaller无法正确识别脚本文件名,需替换为英文双引号"TROLL.py"。

修正后的命令示例:

pyinstaller --noconfirm --onedir --windowed --add-data "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/customtkinter:customtkinter/" "TROLL.py"

更简便的替代方案:直接用--collect-all参数自动收集CustomTkinter的所有依赖数据,无需手动指定路径:

pyinstaller --noconfirm --onedir --windowed --collect-all customtkinter "TROLL.py"

内容的提问来源于stack exchange,提问作者ANDREW ZHANG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:25:58