使用PyInstaller转换为.app的Tkinter程序立即关闭

时间:2016-06-07 21:00:19

标签: python macos tkinter pyinstaller .app

我有一个Tkinter GUI战舰游戏应用程序我写道,我试图转换为.app文件,以便我可以在Mac OS X计算机上轻松运行它。在使用主.py文件和所有子文件(其他三个python文件,一个json文件和一个图标文件)cd到目录后,我正在执行以下命令:

pyinstaller --onefile --windowed --icon favicon.icns --name Battleship battleship.py

这会在" dist"中产生两个文件。文件夹:BattleshipBattleship.appBattleship.app具有我在上面的命令中指定的图标。

当我运行非.app文件(通过双击它)时,一个终端窗口打开,我的Tkinter GUI打开并运行(从我做的小测试)完美无缺。但是,我想在没有终端的情况下打开GUI。

这应该是生成.app文件的目的。但是,当我运行.app文件(通过双击它)时,它的图标只会在我屏幕底部的应用程序栏中反弹几次,然后消失。没有打开实际的窗口。

当我双击.app文件时,如何实现这一点,我的应用程序的GUI实际打开(没有终端窗口)?

提前致谢。

注意:我使用的是Python 3.5.1

3 个答案:

答案 0 :(得分:0)

RoberR似乎在从pyInstaller构建app时缺少一些必要的包,我建议您使用:

pyinstaller --onefile --icon favicon.icns --name Battleship battleship.py 

它将显示您的终端,您将能够弄清楚发生了什么,如果缺少包裹请使用:

pyinstaller --onefile --hidden-imports=file_name --icon favicon.icns --name Battleship battleship.py

希望这能解决你的问题。

答案 1 :(得分:0)

在.app上双击使用Tkinter绝对是一个问题。我发现的唯一解决方法是使用“ brew python3”代替“ anaconda python3”。

答案 2 :(得分:0)

通过以下方式重新发布自己:https://stackoverflow.com/a/57818744/10143204

python discussed here随附的tcl版本存在一些问题。我编写了一个脚本,该脚本会自动将init.tcl文件更改为正确的版本。

您不应该使用--onefile标志,因为文件目录不存在,脚本将无法工作。

  1. cd /path/of/your/app
  2. git clone https://github.com/jacob-brown/TCLChanger.git
  3. pyinstaller --windowed app.py
  4. python TCLChanger/TCLChanger.py

您现在应该可以在终端上通过双击打开应用程序。

相关问题