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

前端之家收集整理的这篇文章主要介绍了macos – 使用python构建的OSX应用程序如果从finder执行app bundle但是从命令行运行正常则立即退出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有这个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 ttys005
MyApplication/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

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

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

原文链接:https://www.f2er.com/python/446476.html

猜你在找的Python相关文章