【问题标题】:Pyinstaller with Kivy crashes when using window only mode使用仅窗口模式时,带有 Kivy 的 Pyinstaller 崩溃
【发布时间】:2018-03-28 16:44:41
【问题描述】:

我有一个 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 )

【问题讨论】:

  • 您是否在.spec 文件的exe 部分中包含console=False,?或者在Pyinstaller 中包含--noconsole 选项?
  • 是的,如果我设置console=False,那么我会得到一个错误。如果我设置了 console=True 它工作得很好。
  • 是否有实际的错误消息可以与我们分享?
  • 我将错误消息添加到问题和 mt 当前 .spec 文件中。
  • 这可能只是一个 SWAG,但双下划线可能会导致 Python 脚本内部出现问题。我从未听说过双下划线会导致文件名出现问题。但是我会在将您的__main__.py 复制到main.py,将__main__.spec 复制到main.spec 并在规范文件中进行适当的更改后尝试编译和运行。

标签: python kivy


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    相关资源
    最近更新 更多