【发布时间】: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并在规范文件中进行适当的更改后尝试编译和运行。