【问题标题】:PyInstaller OS X app runs from command line, but not Finder windowPyInstaller OS X 应用程序从命令行运行,但不是 Finder 窗口
【发布时间】:2014-11-28 08:21:10
【问题描述】:

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

但是,如果我从终端启动应用程序可执行文件(即./Contents/MacOS/MyApplication,它工作得非常好。这似乎与此问题中遇到的相同行为:OSX app built with python quits immediately if app bundle is executed from finder but runs fine from command line,但没有特别标记的解决方案有帮助。

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

【问题讨论】:

    标签: macos pyinstaller


    【解决方案1】:

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

    【讨论】:

    • 有趣。通过将print os.getcwd() 添加到我的主脚本中,我可以看到当从finder 运行时,工作目录确实是/,但是从终端运行时,它是/Users/MyName/Development/MyApp.app/Contents/MacOS。我尝试将工作目录设置为那个(即os.chdir)只是为了看看会发生什么,但仍然没有成功。关于工作目录应该设置在哪里的任何想法?以及应该如何设置?谢谢!!
    • 只要你在任何文件 I/O 之前设置工作目录,你应该没问题 - 将它设置到你的主目录可能是首先尝试的好地方,因为它保证是可写的.
    • os.chdir 到任意位置(脚本目录)不起作用。窗口照常消失。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多