【问题标题】:Creating an Python/py2app application that simply opens a terminal on launch?创建一个简单地在启动时打开终端的 Python/py2app 应用程序?
【发布时间】:2009-12-10 17:33:06
【问题描述】:

我编写了一个不错的 Python 应用程序,它基本上是 SMS 调制解调器的 HTTP 代理,我想让它成为 Mac 上的可双击应用程序。到目前为止,我一直在包含一个可双击的 .commmand 文件,该文件基本上由

cd `dirname $0`
(sleep 8;open http://127.0.0.1:8080/)&
mac/slingshotsms.app/Contents/MacOS/slingshotsms

如何使主要的 .app 可执行文件调用不同的位置/或制作基本上是终端实用程序的包装器并且只显示其输出的应用程序的最简单方法是什么?目前双击应用程序将使用 Mac 上的打开实用程序 - 我想模拟双击应用程序图标时双击 Contents/MacOS/slingshotsms 的行为。有什么建议吗?

【问题讨论】:

    标签: python macos py2app


    【解决方案1】:

    如果您正在寻找“简单”,请尝试为您的 python 脚本添加一个.command 后缀,并确保它是可执行的。例如:

    #!/usr/bin/env python
    # file: hello.command
    
    print 'hello world'
    

    如果您正在寻找“抛光”,那么您可能想了解启动服务、PyObjC、Interface Builder、NIB 文件、应用程序包装器以及各种 Mac OS X 特定的技术细节。但是,请注意,如果不或多或少地知道如何使用 Objective-C Cocoa API 完成相同的任务,PyObjC 几乎不可能用于任何重要的事情。 PyObjC 是这些 API 的一个相当薄的包装器,您必须了解 Cocoa 惯用语/设计模式才能了解移动部件如何组合在一起。

    【讨论】:

    • 嘿,我正在使用 py2app 和 setuptools 系统,这样我就可以打包这个应用程序的所有依赖项并包含 Python 环境......所以拥有一个 .command 文件并不是真的在这里跳动。
    【解决方案2】:

    如果您实际上不需要终端,而只是想要一个围绕脚本的应用程序包装器,请查看Platypus

    【讨论】:

      【解决方案3】:

      编写一个 AppleScript 应用程序来启动终端并运行您的 Python 脚本(将在应用程序的包中)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        • 2021-08-22
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 2012-06-12
        • 2016-11-14
        相关资源
        最近更新 更多