使用仅限窗口模式时,Kivy的Pyinstaller崩溃了

时间:2018-03-28 16:44:41

标签: python kivy

我有一个Kivy应用程序,我正在尝试使用Pyinstaller打包。 我能够打包应用程序并运行可执行文件。 但是,如果我禁用控制台,则会出错。

我已从代码中删除了所有打印语句。 我认为它与Kivy日志输出到控制台有关。 我尝试了以下代码,它似乎禁用了日志记录,但它不能解决我的问题。

Logger.setLevel(logging.ERROR)
Config.set('kivy', 'log_enable', '0')
Config.write()

如何禁用Kivy日志记录或阻止Pyinstaller可执行文件要求它?

谢谢,

这是我在运行exe时遇到的错误

Failed to excute script __main__

.spec文件

# -*- mode: python -*-
from kivy.deps import sdl2, glew
import os

block_cipher = None


a = Analysis(['__main__.py'],
             pathex=['C:\\Users\\user\\PycharmProjects\\User_Control'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
          name='User_Control',
          debug=False,
          strip=False,
          upx=False,
          runtime_tmpdir=None,
          console=False )

1 个答案:

答案 0 :(得分:0)

不是解决方案,但我相信我找到了问题的答案。 在应用程序中,我使用QWINSTA来提取当前登录到服务器的用户列表。 我用WX作为GUI重建了应用程序,如果我在没有控制台的情况下运行pyinstaller,则应用程序启动但无法提取任何数据。

我认为这行代码是问题,因为由于某些原因启用了控制台,它无法运行。

subprocess.check_output("QWINSTA /server:{}".format(server), shell=False)