尝试编译后,Python / Kivy应用程序将无法启动

时间:2018-01-24 15:31:52

标签: python kivy pyinstaller

我创建了一个我正在尝试编译的程序,但是在编译完成后我尝试从/ 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')

我不介意在必要时提供任何其他信息,包括我可能采取的其他步骤,但目前,我很难理解为什么它没有正确启动。

1 个答案:

答案 0 :(得分:0)

尝试从控制台运行应用程序,以便您可以查看与失败的启动相关的错误消息;如果单击.exe打开它,一旦应用程序关闭,控制台就会消失,这使得很难看到这些错误。最有可能的是,您将看到应用程序无法启动,因为它缺少包,您可以将其添加到hiddenimports列表下的.spec文件中。请查看此post,了解为何可能需要这样做。