首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过shell初始化脚本获得复杂python应用程序(包括自定义解释器)的自然MacOSX .app?

如何通过shell初始化脚本获得复杂python应用程序(包括自定义解释器)的自然MacOSX .app?
EN

Stack Overflow用户
提问于 2014-02-13 13:11:09
回答 2查看 138关注 0票数 0

我试图为OSX集成一个复杂的python应用程序(附带一个定制的python解释器)。为了处理由于跨平台需求而产生的一系列问题,我创建了一个.app包,它指向一个CFExecutable脚本,它的CFExecutable条目位于Info.plist中。这是可行的,被调用的shell脚本启动实际的应用程序二进制文件。不过,我有以下问题:

  • .app图标在码头上无休止地反弹,从未达到“激活”状态。我想是因为shell脚本没有终止。这个码头条目有正确的“应用程序图标”。
  • 当脚本调用二进制可执行文件时,会出现一个带有通用python图标的新的Dock条目。此图标成功启动,并在应用程序启动时停止反弹。
  • 当我试图通过Force via杀死第一个dock条目时,实际的应用程序仍然在继续运行,因为它显然是由码头上的第二个条目控制的。

有没有办法让这个设置表现得更自然?我是否需要放弃shell脚本来实现目标C包装?如果我必须使用obj包装器(而不是shell脚本)来生成我的应用程序,我如何才能防止出现同样的次级图标生成呢?

编辑:注意,我不是在运行python脚本。我正在运行一个定制的python解释器。py2app不是我所需要的。

EN

回答 2

Stack Overflow用户

发布于 2014-02-13 13:22:17

似乎许多人都为此目的成功地使用了py2app

如果这对您不起作用,我所熟悉的Java等价物,阿伯德勒,确实会创建一个mach-o可执行存根来触发一些事情。您可能会查看他们是如何做事的,特别是他们的main.m

票数 0
EN

Stack Overflow用户

发布于 2014-02-13 13:51:58

我解决了这个问题,事后看来,这是相当微不足道的。在shell脚本中,我需要使用exec调用我的二进制文件,以便替换正在运行的bash进程( la execve()),而不是生成一个新进程。唯一的问题是,我的解释器现在用股票图标代替图标,但我现在只有一个图标在码头上,而且行为自然。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21755235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档