PyInstaller OS X 应用程序从命令行运行,但不是 Finder 窗口

And*_*bie 5 macos pyinstaller

我在 OS X 上使用 PyInstaller 创建了一个应用程序包。如果我在 Finder 中双击 .app 包,该应用程序会尝试启动,然后终止。除了应用程序退出之外,控制台中没有提供更多信息。

但是,如果我从终端启动应用程序可执行文件(即,./Contents/MacOS/MyApplication它工作得很好。这似乎与此问题中经历的行为相同:如果应用程序包是从 finder 执行的,但从命令运行良好,则使用 python 构建的 OSX 应用程序会立即退出line,但是那里标记的解决方案并不是特别有用。

我怀疑这确实与环境或路径问题有关。但我不知道如何解决它。info.plist也许应该在文件中指定一些内容吗?任何指导将不胜感激。

Pau*_*l R 7

这很可能是由于对工作目录的错误假设造成的。当您从 Finder 启动时,工作目录很可能/(取决于 OS X 版本)不可写。如果您的应用程序写入当前工作目录,那么您可能应该在启动时将工作目录设置为合理的位置。

  • 有趣的。通过将 `print os.getcwd()` 添加到我的主脚本中,我能够看到当从 finder 运行时,工作目录确实是 `/`,但是当从终端运行时,它是 `/Users/MyName/开发/MyApp.app/Contents/MacOS`。我尝试将工作目录设置为那个(即`os.chdir`)只是为了看看会发生什么,但仍然没有成功。关于工作目录应该设置在哪里的任何想法?以及应该如何设置?谢谢!! (2认同)