加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

macos – 使用python构建的OSX应用程序如果从finder执行app bund

发布时间:2020-12-16 21:28:38 所属栏目:Python 来源:网络整理
导读:所以我有这个pyqt项目,我想使用pyinstaller构建一个osx.app dmg pyinstaller创建了输出 dist/MyApplication.app 我可以直接从终端运行它 cd dist./MyApplication.app/Contents/MacOS/MyApplication 但是,如果我尝试直接运行应用程序包,请使用 open -a MyAppl
所以我有这个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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读