在OS-X中用鼠标轻松启动Python脚本的方法
我想写一些可以在不同操作系统上运行的Python脚本,这些脚本是命令行程序的图形界面。问题是我认识的一些Mac用户觉得使用终端就像把电脑从摩天大楼上扔下去一样可怕。在Linux和Windows上,设置一个Python脚本很简单,用户只需双击一个图标,脚本就会启动,而不会打开额外的窗口。那么在OS-X上有没有简单的方法做到这一点呢?用户需要安装一个不同于OS-X自带的Python吗?我一直找不到明确的答案。
3 个回答
有两种方法可以做到这一点:
- 点击一个脚本。
- 按下命令键加字母i,打开“获取信息”窗口。
- 展开“打开方式”部分(如果还没有展开的话)。
- 从下拉菜单中选择“Python Launcher”。
- 如果你希望所有的Python脚本在双击时都能打开,点击“全部更改”。
- 可能需要打开Python Launcher,然后取消勾选“在终端窗口中运行”。这样做只对这台机器有效,所以不如下面的方法通用。为什么呢?因为打开文档类型的默认方式会根据安装的软件不同而有所变化(比如XCode和IDLE都会接管打开.py文件的功能)。
第二种方法:
- 验证一下解释器指令,这就是文件的第一行。我建议使用
/usr/bin/env python3
。这样会运行用户路径中第一个找到的python3解释器。 - 让脚本可以执行,使用命令
chmod a+x <script_name>
在终端中操作。 - 把文件扩展名从.py改成.command(这样会在终端中打开)。
- 使用zip或tar进行分发,这样权限就不会被搞乱。这个方法会打开一个终端窗口,但当Python窗口关闭时,终端窗口也会关闭。
如果你的脚本有依赖其他库的情况,那么你应该提供一个额外的.command
文件来安装这些依赖。这可能会让事情变得复杂,但使用pip3 install --user <依赖列表>
应该能减少麻烦。
py2app 这个工具做得非常好。你只需要写好你的Python脚本,使用你需要的任何库(比如wx、Tkinter等),然后py2app就会帮你打包成一个独立的应用程序,这个应用可以在任何现代的OS X系统上运行。它还会把Python一起打包进去,这样你就可以使用任何你想要的Python版本,而不仅仅是系统自带的那个。
不过,缺点是生成的应用程序可能会比较大,如果你用的库很多,可能会达到50MB(虽然这算是比较极端的情况)。
你可以看看Platypus。这是一个免费的应用程序,可以用来生成包装脚本的应用。
另外一种方法是使用Automator或者AppleScript编辑器。这两者都可以创建一个只运行脚本的应用程序。
更新:
对于Automator:打开Automator,选择“应用程序”模板,在搜索框里输入“script”,然后双击“运行Shell脚本”,接着把下拉菜单切换到/usr/bin/python
,然后在文本框里输入或粘贴你的Python脚本。或者,你也可以把下拉菜单保持在/bin/bash
,然后在文本框里写一个调用外部脚本的命令。最后保存为一个应用程序。
你也可以在帮助菜单里查看帮助。
对于AppleScript,打开AppleScript编辑器,输入以下脚本:
do shell script "/usr/bin/true"
把/usr/bin/true
替换成你想要的脚本的路径。然后保存为一个应用程序。
同样,你可以在帮助菜单里找到帮助。