我想编写跨平台的Python脚本,用作命令行程序的GUI前端。问题是我认识一些Mac用户,他们认为使用终端的效果就像把电脑从摩天大楼上扔下去一样。在Linux和Windows中,很容易设置Python脚本,使用户可以双击图标启动脚本而不会打开任何额外的窗口。是否有一个简单的方法在OS-X中实现这个功能?用户需要安装与OS-X自带的Python不同的Python吗?我还没有找到明确的答案。
我想编写跨平台的Python脚本,用作命令行程序的GUI前端。问题是我认识一些Mac用户,他们认为使用终端的效果就像把电脑从摩天大楼上扔下去一样。在Linux和Windows中,很容易设置Python脚本,使用户可以双击图标启动脚本而不会打开任何额外的窗口。是否有一个简单的方法在OS-X中实现这个功能?用户需要安装与OS-X自带的Python不同的Python吗?我还没有找到明确的答案。
您可能想要查看Platypus,这是一个免费的应用程序,可生成包装脚本的应用程序。
另一种方法是使用Automator或AppleScript编辑器。 任何一种都可以创建一个仅运行脚本的应用程序。
更新:
对于Automator:启动Automator,选择应用程序模板,在搜索字段中键入“脚本”,双击“运行Shell脚本”,切换shell弹出菜单到/usr/bin/python
,将您的Python脚本键入/粘贴到文本字段中。 或者,在文本字段中保留弹出菜单/bin/bash
并编写调用外部脚本的命令。 另存为应用程序。
您还可以在其帮助菜单中查看帮助。
对于AppleScript,启动AppleScript编辑器,将以下内容键入脚本:
do shell script "/usr/bin/true"
用您想要的脚本路径替换/usr/bin/true
。保存为应用程序。
同样,在“帮助”菜单中可以获取帮助。
py2app非常擅长这个。您只需编写Python脚本,使用所需的任何依赖项(如wx、Tkinter等),然后py2app将为您生成一个独立的应用程序包,在任何现代OS X环境中运行。它还捆绑了Python,因此您可以使用任何想要的Python版本(而不仅仅是系统默认版本)。
缺点是生成的应用程序可能很大,如果有很多依赖项,则可能高达50MB(尽管这有些极端)。
有两种方法可以实现这个:
这只适用于此台机器,因此比以下方法的可移植性差。为什么?因为打开文档类型的默认设置取决于安装了什么(XCode和/或IDLE都会接管打开.py文件的操作)。
第二种方法:
/usr/bin/env python3
。这将运行用户路径上第一个python3解释器。chmod a+x <script_name>
。如果您的脚本具有标准库之外的依赖项,则应提供第二个.command
文件来安装它们。这可能会使事情变得更加复杂,但使用pip3 install --user <list of dependencies>
应该可以最小化复杂性。