【问题标题】:'hello world' PyInstaller .app doesn't open'hello world' PyInstaller .app 无法打开
【发布时间】:2021-02-27 04:02:31
【问题描述】:

这是一个常见问题,尽管解决方案似乎多种多样,但没有一个对我有帮助。

就像这个question 和这个question,在mac 上,我的PyInstaller .app 在Finder 中单击时无法打开。但是,从终端 ./helloWorldTest.app/Contents/MacOS/helloWorldTest. 启动时它确实有效。在 Finder 中单击 .exe 文件时它确实有效(从我的阅读来看,这似乎很常见)。

与链接问题中的应用不同,我的应用不读取或写入任何文件:我已将我的实际应用(具有相同的问题行为)完全删除为一个简单的hello world 版本:

# This is a trivial app with a loop to ensure it stays open long enough to actually see something happen before the script finishes.   
 print('hello world!')
    
    i = 0
    while i < 1000000:
        print('hello world number: ', i)
        i += 1

虽然 >90% 的类似探测问题的解决方案都涉及更改路径,但这不是问题,因为这个应用程序基本上没有任何问题。 那么,谁能帮我让这个基本应用程序正常工作,以便我可以从那里构建和调试?

这是我使用的 PyInstaller 命令:pyinstaller helloWorldTest.py --onefile --icon=dipyIcon.icns -w --clean

【问题讨论】:

  • 不完全确定为什么这被否决了。感觉像是一个公平的问题(特别是考虑到这个问题的普遍性)——我知道发布“好”问题是有规则的,但是如果没有评论或上下文,反对票只是一记耳光。这令人沮丧,坦率地说有点粗鲁。

标签: python-3.x macos pyinstaller


【解决方案1】:

考虑到这个问题似乎很普遍,这有点令人惊讶。无论如何,对于将来搜索/谷歌搜索的任何人,希望这会有所帮助。 该问题是由捆绑应用程序中使用的名为 Tcl 的默认版本引起的。由于某种原因,最新版本不起作用,因此您需要手动将其设置为稍旧的版本。

注意:这个解决方案是manuelf23找到的,我这里只转发一下。可以找到原帖here

为此:

  1. 右键单击您的 .app 文件(带有图标的那个,您已经给了它一个)

  2. 单击Show package contents(您现在处于捆绑在一起的隐藏文件中。这些文件位于标准 OSX 结构中,与 Mac 上的任何应用程序的架构相同

  3. 导航到此文件:./Contents/Resources/tcl/init.tc [注意,您不要使用 --onefile 标志,否则您的资源文件夹中只会有您的图标]

  4. 在任何文本编辑器中打开 init.tc 文件并转到第 19 行

  5. 在第 19 行,您会找到这一行(package require -exact Tcl 8.6.8)并将其替换为 package require -exact Tcl 8.5.9 - 或者简单地将 Tcl 版本更改为 8.5.9

  6. Et Voilà, vous êtes au top- 返回您的应用并双击您的图标

以防万一,这是我使用的 PyInstaller 命令:

pyinstaller myFileName.py -w --icon myIconName.icns

编辑:忘记链接解决方案的来源

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2014-09-25
    • 2013-04-25
    相关资源
    最近更新 更多