在OS-X中使用鼠标轻松启动Python脚本的方法

12

我想编写跨平台的Python脚本,用作命令行程序的GUI前端。问题是我认识一些Mac用户,他们认为使用终端的效果就像把电脑从摩天大楼上扔下去一样。在Linux和Windows中,很容易设置Python脚本,使用户可以双击图标启动脚本而不会打开任何额外的窗口。是否有一个简单的方法在OS-X中实现这个功能?用户需要安装与OS-X自带的Python不同的Python吗?我还没有找到明确的答案。


1
你尝试过什么?在 Mac 上是否有一个工作的图标,可以执行类似于你想要的功能? - John Zwinck
3个回答

14

您可能想要查看Platypus,这是一个免费的应用程序,可生成包装脚本的应用程序。

另一种方法是使用Automator或AppleScript编辑器。 任何一种都可以创建一个仅运行脚本的应用程序。

更新:

对于Automator:启动Automator,选择应用程序模板,在搜索字段中键入“脚本”,双击“运行Shell脚本”,切换shell弹出菜单到/usr/bin/python,将您的Python脚本键入/粘贴到文本字段中。 或者,在文本字段中保留弹出菜单/bin/bash并编写调用外部脚本的命令。 另存为应用程序。

您还可以在其帮助菜单中查看帮助。

对于AppleScript,启动AppleScript编辑器,将以下内容键入脚本:

do shell script "/usr/bin/true"

用您想要的脚本路径替换/usr/bin/true。保存为应用程序。

同样,在“帮助”菜单中可以获取帮助。


那么唯一的方法就是创建一个应用程序吗?我在哪里可以了解如何使用Automator和/或AppleScript编辑器与Python? - Dave Brunker

5

py2app非常擅长这个。您只需编写Python脚本,使用所需的任何依赖项(如wx、Tkinter等),然后py2app将为您生成一个独立的应用程序包,在任何现代OS X环境中运行。它还捆绑了Python,因此您可以使用任何想要的Python版本(而不仅仅是系统默认版本)。

缺点是生成的应用程序可能很大,如果有很多依赖项,则可能高达50MB(尽管这有些极端)。


Mac电脑可以同时安装多个Python吗,例如默认版本和Active State版本? - Dave Brunker
没错。只要这些副本被安装到不同的位置(例如/System/Library、/Library、/usr),或者是不同的Python版本,它们就可以愉快地共存。 - nneonneo

0

有两种方法可以实现这个:

  1. 点击脚本。
  2. 按下command-i打开“获取信息”窗口。
  3. 展开“打开方式”部分(如果还没有展开)。
  4. 从下拉菜单中选择“Python Launcher”。
  5. 如果您想要所有Python脚本在双击时都启动,请点击“全部更改”。
  6. 可能需要打开Python Launcher并取消选中“在终端窗口中运行”。
  7. 这只适用于此台机器,因此比以下方法的可移植性差。为什么?因为打开文档类型的默认设置取决于安装了什么(XCode和/或IDLE都会接管打开.py文件的操作)。

第二种方法:

  1. 验证解释器指令,这是文件的第一行。我建议使用/usr/bin/env python3。这将运行用户路径上第一个python3解释器。
  2. 从终端使脚本可执行chmod a+x <script_name>
  3. 将扩展名从.py更改为.command(这将由终端打开)。
  4. 使用zip或tar进行分发,以便权限不会被破坏。此方法将打开一个终端窗口,但当Python窗口关闭时,终端窗口也将关闭。

如果您的脚本具有标准库之外的依赖项,则应提供第二个.command文件来安装它们。这可能会使事情变得更加复杂,但使用pip3 install --user <list of dependencies>应该可以最小化复杂性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接