如果您希望在mac下创建一个可执行的应用程序,可以使用 PyInstaller 或 cx_Freeze。这些工具可以将 Python 应用程序打包成独立的可执行文件。
首先安装PyInstaller
pip install pyinstaller
下面是几种简单的使用 PyInstaller 打包应用程序的方法:
mac打包
#带命令窗口,就是打开程序出现,可用于调试
pyinstaller --onefile your_script.py
#不带命令窗口
pyinstaller --onefile --windowed LabelMain.py
#带应用图标
pyinstaller --onefile --windowed --icon=./logo.ico LabelMain.py
上面打包后,将在labekMain.py的同级目录下 生成一个dist文件夹,里面就是我们打包好的文件了。
接下来我们怎么把他打包成dmg 呢?这里会用到create-dmg,用brew安装该包:
brew install create-dmg
安装好后,我先测试打包命令
#create-dmg dmg生成位置 要包装成dmg的app 包,就是我们用pyinstaller 命令生成的文件 create-dmg ./dist/标注工具.dmg /Users/***/PycharmProjects/LabelProject/dist/LabelMain.app
这样我们就可以快速生成了一个dmg安装包文件。不过我们还可以设置更详细参数,比如我们在安装其它应用的时候,打开DMG 包 会出现 背景,图标等。接下来我们介绍一下:
新建一个 package.sh 文件,输入一下内容:
#!/bin/sh
#检查是否存在已经打好的包,则删除
test -f /Users/*/PycharmProjects/LabelProject/dist/标注系统.dmg && rm /Users/*/PycharmProjects/LabelProject/dist/标注系统.dmg
create-dmg \
--volname "标注系统" \
--volicon "/Users/baijinhao/PycharmProjects/LabelProject/icon.icns" \
--background "/Users/baijinhao/PycharmProjects/LabelProject/bg.png" \
--window-pos 200 120 \
--window-size 800 400 \
--icon-size 100 \
--icon "LabelMain.app" 200 190 \
--hide-extension "LabelMain.app" \
--app-drop-link 600 185 \
"/Users/*/PycharmProjects/LabelProject/dist/标注系统.dmg" \
"/Users/*/PycharmProjects/LabelProject/dist/LabelMain.app"
chmod 赋予sh文件权限,再运行sh文件,等待打包完成。

ok打包就介绍到这里,希望对你有帮助!
详细参数介绍:
--volname:
设置卷名称(显示在 Finder 侧栏和窗口标题中)
--volicon:
设置音量图标
--background:
设置文件夹背景图片(提供png、gif、jpg)
--window-pos:
设置文件夹窗口的位置
--window-size:
设置文件夹窗口的大小
–text-size:
设置窗口文本大小(10-16)
–icon-size:
设置窗口图标大小(最大 128)
--icon:
设置文件图标的位置
--hide-extension:
隐藏文件扩展名
--app-drop-link:
在位置 x, y 处创建一个指向应用程序的下拉链接
--ql-drop-link:
在位置 x, y 处创建一个指向 /Library/QuickLook 的放置链接
--eula:
将许可证文件附加到 dmg
--rez:
指定用于包含许可证文件的 Rez 工具的自定义路径
–no-internet-enable:
禁用自动挂载和复制
--format:
指定最终图像格式(UDZO|UDBZ|ULFO|ULMO)(默认为 UDZO)
--filesystem:
指定图像文件系统(HFS+|APFS)(默认为 HFS+,APFS 支持 macOS 10.13 或更新版本)
--encrypt:
为生成的磁盘映像启用加密(AES-256 - 系统将提示您输入密码)
--encrypt-aes128:
为生成的磁盘映像启用加密(AES-128 - 系统将提示您输入密码)
--add-file:
添加其他文件或文件夹(可多次使用)
--disk-image-size:
手动将磁盘映像大小设置为 x MB
--hdiutil-verbose:
以详细模式执行 hdiutil
--hdiutil-quiet:
以安静模式执行 hdiutil
--bless:
祝福挂载文件夹(已弃用,需要 macOS 12.2.1 或更早版本,
)
--codesign <签名>:
使用指定签名对磁盘映像进行协同设计
--notarize:
使用钥匙串存储的凭证对磁盘映像(waits 和 staples)进行公证。有关更多信息,请查看Apple 的文档
--skip-jenkins:
跳过 Finder 美化的 AppleScript,在沙盒和非 GUI 环境中很有用
--sandbox-safe:
具有沙盒兼容性的 hdiutil,不支持也不执行装饰性 AppleScript(不支持 APFS 磁盘映像)
--version:
显示工具版本号
-h, --help:
显示帮助
更多使用方法参考: https://github.com/create-dmg/create-dmg
