从finder启动时,Python构建应用程序失败

时间:2017-05-13 18:16:07

标签: python macos qt

在osx下使用python 3,QT5,我从源代码构建一个应用程序。

当我直接从二进制文件中运行它时,它运行良好。 当我运行它时启动open -a sakia.app它运行良好。

但是当我尝试从启动板或发现者启动它时,它会在几秒钟后失败,而不会在屏幕上显示任何窗口。

日志中没有比以下更多: May 13 20:01:57 my-macbook com.apple.xpc.launchd[1] (sakia.5432[4022]): Service exited with abnormal code: 255

我无法在谷歌案例中看到开放命令有效并且直接开放应用程序没有。

我认为我对文件位置没有任何问题,但是我无法确定它,我不知道如何准确地检查它,因为没有日志...

我应该寻找什么?有关调试或原因的任何想法吗?

编辑:

这是我的Info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>CFBundleIdentifier</key>
<string>sakia</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
<key>LSBackgroundOnly</key>
<string>False</string>
<key>CFBundleShortVersionString</key>
<string>0.0.0</string>
<key>CFBundleExecutable</key>
<string>MacOS/sakia.bin</string>
<key>CFBundleIconFile</key>
<string>sakia.ico</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleDisplayName</key>
<string>sakia</string>
<key>CFBundleName</key>
<string>sakia</string>
<key>StandardErrorPath</key>
<string>/tmp/test.stderr</string>
</dict>
</plist>

1 个答案:

答案 0 :(得分:0)

应用程序正在打开一个文件,其中包含一个特殊字符,这会导致应用程序失败。 (G)

当您从命令行打开应用程序时,您将获得

locale.getpreferredencoding(False) = UTF-8

但是如果你直接从GUI(启动板或取景器)打开,你就得到了

locale.getpreferredencoding(False) = US-ASCII

我并不完全理解导致这种情况的行为,但只需在info.Plist中添加它就可以了

<dict>
    <key>LANG</key>
    <string>en_US.UTF-8</string>
    <key>LC_ALL</key>
    <string>en_US.UTF-8</string>
</dict>