目标
我编写了一个简单的 python 应用程序,我想以一种可以将其通过电子邮件发送给使用 Mac OS 机器的非技术人员的方式来构建它,这样他们就可以下载该文件并双击它来运行。
到目前为止我尝试过的事情
我已经使用 pyinstaller 构建了单个文件可执行文件,但是当我通过电子邮件发送并下载它时,该文件没有执行权限。我知道这可以通过
chmod
解决,但目标是让非技术人员能够只需双击即可运行。
我还尝试创建一个“安装文件”,它只是一个带有
.command
文件扩展名的文件,本质上是这样的:
#!/bin/bash
cd -- "$(dirname "$BASH_SOURCE")"
sudo chmod a+x MyApplication
exit 0
但这和上面有同样的问题——该文件默认没有运行权限。
我缺少一些简单的东西吗?我愿意不一定要通过电子邮件发送应用程序,但我确实需要一种简单的方法来共享它。
Platypus 允许将不同语言(包括 Python)的脚本捆绑到 OSX 应用程序中。无论如何,Python 通常安装在较新版本的 OSX 上,因此可能不需要发布 Python 本身,并且该应用程序的文件大小可能很小。
一般来说,由于 OSX 应用程序实际上是文件夹,因此在通过电子邮件发送之前打包文件夹可能是值得的
tar cjf YourApp.tbz YourApp
其中
YourApp
是包含应用程序的文件夹。 OSX 可以识别 tbz
扩展名,并在双击时解压应用程序/文件夹,例如在下载或桌面中,用户可以在其中双击应用程序来运行它。
tar cjf archive.tbz singlefile
同样也适用于归档单个文件,其中
tar
将保留可执行文件和其他标志。
如果您的问题只是执行位,请以支持该权限的格式分发应用程序,例如ZIP 和 DMG。是的,ZIP 也支持执行位。即使在没有这些位的 Windows 操作系统上,您也可以在 ZIP 文件中设置执行位: Windows 上是否可以将 zip 文件中的文件标记为 Unix 可执行文件?