我有一个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 )
答案 0 :(得分:0)
不是解决方案,但我相信我找到了问题的答案。 在应用程序中,我使用QWINSTA来提取当前登录到服务器的用户列表。 我用WX作为GUI重建了应用程序,如果我在没有控制台的情况下运行pyinstaller,则应用程序启动但无法提取任何数据。
我认为这行代码是问题,因为由于某些原因启用了控制台,它无法运行。
subprocess.check_output("QWINSTA /server:{}".format(server), shell=False)