使用 PyInstaller 后无法打开 Tkinter .exe 文件
Posted
技术标签:
【中文标题】使用 PyInstaller 后无法打开 Tkinter .exe 文件【英文标题】:Tkinter .exe file doesn't open after using PyInstaller 【发布时间】:2019-11-18 01:23:21 【问题描述】:我有一个基本的 Tkinter 窗口(只是一个标题和徽标),并想尝试/练习 PyInstaller。但是,当我尝试打开 .exe 文件时,什么也没有发生。我使用了命令:pyinstaller test_script.py(test_script只是我的文件名,我是在文件所在目录下做的)
我使用的是 Windows 10 和 python 3.7.3。我会把我的 Tkinter 代码放在下面,如果有帮助的话,还有我的规范文件(我不确定它的格式是否正确,我是这个网站的新手):
from tkinter import *
root = Tk()
root.title("Test Application 1")
root.iconbitmap("favicon.ico")
root.geometry("700x500")
root.mainloop()
### --- Spec file --- ##
# -*- mode: python -*-
block_cipher = None
a = Analysis(['test_script.py'],
pathex=['C:\\Users\\User\\Documents\\Python stuff\\Other
apps\\Misc\\TestApplicationOne'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='test_script',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='test_script')
我没有收到任何错误或任何错误,只是应用程序无法打开。我尝试在 dist 和 build 文件夹中打开 .exe。我也删除了所有内容并重新开始,但仍然没有运气。该应用程序似乎打开了一瞬间,然后立即关闭。
【问题讨论】:
从已经打开的命令提示符运行它,这样您就可以看到正在生成的任何错误。 @jasonharper 我刚刚这样做了,同样的事情发生了 - 窗口打开了一瞬间(甚至不足以看到它,我只能看到任务栏中的蓝条出现)和然后它立即消失 在您运行它的命令窗口中没有出现消息?我的猜测是找不到favicon.ico
,但这肯定会产生错误消息。
从这里的情况来看,我赞同@jasonharper 所说的。看起来它无法找到图标。您可以简单地删除 root.iconbitmap("favicon.ico")
,然后转换为 .exe,看看是否可以修复它。
@probat 我刚刚尝试删除root.iconbitmap("favicon.ico")
,但问题仍然存在。
【参考方案1】:
尝试使用以下代码 pyinstaller -F -w --icon=favicon.ico test_script.py ,您还可以使用调试选项来获取正在发生的事情和错误所在位置的详细输出
【讨论】:
您好搭便车,感谢您的回答!当你回答一个问题时,重要的是要彻底解释它,而不是仅仅展示一个代码示例。请edit您的回答以添加更多详细信息。以上是关于使用 PyInstaller 后无法打开 Tkinter .exe 文件的主要内容,如果未能解决你的问题,请参考以下文章
PySide2 QMainWindow()捆绑在PyInstaller中后无法呈现[重复]
Pyinstaller 程序:无法打开自我 Dev\dist\view\view.exe 或存档 Dev\dist\view\view.pkg