在kivy论坛没有得到回应,所以来这里试一试。
当我将教程中的pong代码编译为一个可执行文件时,仍然必须将pong.kv文件包含在同一个文件夹中才能运行。 否则,启动exe时会出现以下错误:
GL:支持EXT_framebuffer_object [INFO] [GL] OpenGL版本 [INFO] [GL] OpenGL供应商 [INFO] [GL] OpenGL渲染器 [INFO] [GL] OpenGL解析版本:2.1 [INFO] [GL] Shading版本 [INFO] [GL] 纹理最大大小 [INFO] [GL] 纹理最大单位 [INFO] [Window] 自动添加sdl2输入提供程序 [INFO] [Window] 不允许虚拟键盘, 单一模式,未停靠 Traceback (most recent call last): File "", line 81, in File "c:\python34\lib\site-packages\kivy\app.py", line 802, in run root = self.build() File "", line 75, in build File "", line 20, in serveBall AttributeError: 'NoneType' object has no attribute 'center' main returned -1
我该如何让它作为一个可执行文件运行?这是我的pong.spec文件:
# -*- mode: python -*-
from kivy.deps import sdl2, glew
block_cipher = None
a = Analysis(['Code\main.py'],
pathex=['E:\\Development\\Pong'],
binaries=None,
datas=None,
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)
a.datas += [('Code\pong.kv', 'E:\\Development\\Pong\Code\pong.kv', 'DATA')]
exe = EXE(pyz,Tree('Code'),
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
name='pong',
debug=False,
strip=False,
upx=True,
console=True , icon='pong.ico')
请注意,我尝试将pong.kv包含在数据列表中,但这并没有帮助。谢谢, -Raj