macos – 使用python构建的OSX应用程序如果从finder执行app bundle但是从命令行运行正常则立即退出

macos – 使用python构建的OSX应用程序如果从finder执行app bundle但是从命令行运行正常则立即退出,第1张

概述所以我有这个pyqt项目,我想使用pyinstaller构建一个osx.app dmg pyinstaller创建了输出 dist/MyApplication.app 我可以直接从终端运行它 cd dist./MyApplication.app/Contents/MacOS/MyApplication 但是,如果我尝试直接运行应用程序包,请使用 open -a MyApplication.app 所以我有这个pyqt项目,我想使用pyinstaller构建一个osx.app dmg

pyinstaller创建了输出

dist/MyApplication.app

我可以直接从终端运行它

cd dist./MyApplication.app/Contents/MacOS/MyApplication

但是,如果我尝试直接运行应用程序包,请使用

open -a MyApplication.app

要么

open .# double click on MyApplication.app folder (appears just as MyApplication from finder)

它启动然后立即退出

现在,如果我导航到

$cd ./Contents/MacOS/

并打开一个发现者

$open .#then double click on MyApplication

它运行正常,但在后台打开终端窗口

Last login: Fri Mar 14 18:01:13 on ttys005MyApplication/dist/MyApplication.app/Contents/MacOS/MyApplication ; exit;MyApplication/dist/MyApplication.app/Contents/MacOS/MyApplication ; exit;

我使用类似的步骤来构建一个没有任何问题的windows exe(虽然在windows中没有MyApplication.app概念)

我该如何诊断这个问题?

谢谢

解决方法 所以我跟着这个 py2app tutorial看看它是否比pyinstaller更好用这个代码
if __name__=="__main__":    print "Hello"

并得到了类似的结果

即当我这样做时应用程序关闭

open -a HelloTest.app

虽然它运行良好

./HelloTest.app/Contents/MacOS/HelloTest

但是教程中的这个花絮解释了它

When run normally,your application’s stdout and stderr output will go to the Console logs. To see them,open the Console application:$open -a Console

检查控制台日志后,好像我跑了

open -a MyApplication.app

应用程序在沙箱中运行,如果打开任何要写入的文件而不指定绝对值
它将无法创建文件的路径

如果我跑

./MyApplication.app/Contents/MacOS/MyApplication

直接应用程序可以在当前目录中创建文件

所以我必须返回并在创建文件时指定完整路径,而不是假设它将在工作目录中创建.

总结

以上是内存溢出为你收集整理的macos – 使用python构建的OSX应用程序如果从finder执行app bundle但是从命令行运行正常则立即退出全部内容,希望文章能够帮你解决macos – 使用python构建的OSX应用程序如果从finder执行app bundle但是从命令行运行正常则立即退出所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1204949.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存