我有一个Tkinter GUI战舰游戏应用程序我写道,我试图转换为.app文件,以便我可以在Mac OS X计算机上轻松运行它。在使用主.py文件和所有子文件(其他三个python文件,一个json文件和一个图标文件)cd
到目录后,我正在执行以下命令:
pyinstaller --onefile --windowed --icon favicon.icns --name Battleship battleship.py
这会在" dist"中产生两个文件。文件夹:Battleship
和Battleship.app
。 Battleship.app
具有我在上面的命令中指定的图标。
当我运行非.app文件(通过双击它)时,一个终端窗口打开,我的Tkinter GUI打开并运行(从我做的小测试)完美无缺。但是,我想在没有终端的情况下仅打开GUI。
这应该是生成.app文件的目的。但是,当我运行.app文件(通过双击它)时,它的图标只会在我屏幕底部的应用程序栏中反弹几次,然后消失。没有打开实际的窗口。
当我双击.app文件时,如何实现这一点,我的应用程序的GUI实际打开(没有终端窗口)?
提前致谢。
注意:我使用的是Python 3.5.1
答案 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
标志,因为文件目录不存在,脚本将无法工作。
cd /path/of/your/app
git clone https://github.com/jacob-brown/TCLChanger.git
pyinstaller --windowed app.py
python TCLChanger/TCLChanger.py
您现在应该可以在终端上通过双击打开应用程序。