首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将shell命令从Mac中的App传递给终端应用程序

将shell命令从Mac中的App传递给终端应用程序
EN

Stack Overflow用户
提问于 2015-02-10 23:57:54
回答 2查看 842关注 0票数 0

我已经成功地使用Py2app冻结了一个基于python的GUI脚本,但是我在Mac上使用这个应用程序时遇到了麻烦。这个应用程序应该发送参数/参数给集群,一个基于终端的应用程序,但它返回一个错误非零退出状态127,'/bin/sh: Clustal :命令未找到‘

我发现当我从Frozen_apl.app>Contents>MacOS>Frozen_apl (这是一个UNIX可执行文件)执行同一个应用程序时,冻结的应用程序可以成功地发送shell命令。

为什么这些shell命令在直接从app传递时会被阻塞?我怎样才能解决这个问题?

注意:集群已正确安装,其路径已正确设置。我使用OSX10.9。我为Ubuntu和Windows冻结了相同的脚本,它们运行得很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-12 02:30:17

引用Py2app 0.6.4次要特性发行版:

问题15: py2app现在可以通过打开终端中的窗口来模拟shell环境。 用法:python setup.py py2app --emulate-shell-environment 这个选项是实验性的,还远不能确定该实现是否适用于所有系统。

使用此选项结合Py2app解决了Py2app冻结应用程序与Os之间通信阻塞的问题。

票数 1
EN

Stack Overflow用户

发布于 2015-02-11 21:20:17

根据注释中的讨论--这不是参数的问题,这是由于生成的shell无法找到clustal可执行文件。我不知道为什么会这样,因为它在/usr/local/bin/clustal中,而且/usr/local/bin在OS的默认路径中(在/etc/ PATH中列出)。使用可执行文件的完整路径工作,因此冻结的应用程序似乎正在生成一个具有非默认路径的shell。

将完整的路径(/usr/local/bin/clustal)包含在冻结的应用程序中并不是真正的最佳解决方案;更好的方法是在生成的shell中找到一个正常路径。但是我现在对Py2app已经足够熟悉了,我知道如何做到这一点。(JeeYem:请给出你在评论或其他回复中提出的解决办法。)

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

https://stackoverflow.com/questions/28444173

复制
相关文章

相似问题

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