我创建了一个我正在尝试编译的程序,但是在编译完成后我尝试从/ dist /目录中的.exe启动应用程序,它会创建一个命令提示符窗口,打开应用程序窗口片刻,然后关闭。
我已经按照Kivy程序添加了正确的导入,并将必需的目录添加到规范的COLLECT区域。我尝试将pyinstaller hooks import添加到顶部,正如一些人在各种页面上推荐的那样,但无济于事。
应用程序在测试期间通过命令“python main.py”正常启动,所以我很困惑为什么它在编译后没有启动。
规范:
# -*- mode: python -*-
from kivy.deps import sdl2, glew
block_cipher = None
a = Analysis(['..\\main.py'],
pathex=['C:\\python programs\\Escape Room Program\\compiled'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
**get_deps_all())
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='EskapAid',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe, Tree('..\\compiled'),
a.binaries,
a.zipfiles,
a.datas,
Tree('..\\img\\', 'img'),
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
strip=False,
upx=True,
name='EskapAid')
我不介意在必要时提供任何其他信息,包括我可能采取的其他步骤,但目前,我很难理解为什么它没有正确启动。
答案 0 :(得分:0)
尝试从控制台运行应用程序,以便您可以查看与失败的启动相关的错误消息;如果单击.exe打开它,一旦应用程序关闭,控制台就会消失,这使得很难看到这些错误。最有可能的是,您将看到应用程序无法启动,因为它缺少包,您可以将其添加到hiddenimports列表下的.spec文件中。请查看此post,了解为何可能需要这样做。