Kivy应用程序使用PyInstaller打包后崩溃

4
以下是我一直面临的问题的一些提示:
- 尝试打包一个带有Kivy的示例应用程序。 - 我能够通过命令行正常运行该应用程序[kivy main.py]。 - 当我尝试使用Pyinstaller打包应用程序时,会生成spec文件,并且可以打包应用程序,但这是我在警告文本文件中看到的内容:http://pastebin.com/3D2A9ZLG - 应用程序在此之后无法启动,这是我在控制台日志中看到的错误:(com.apple.xpc.launchd.oneshot.0x10000028.day2[6584]) Service exited with abnormal code: 1 Kivy安装
  • 使用下载附带的DMG在Mac OS X Yosemite上安装了Kivy 1.9.0,并使用sudo用户运行了MakeSymbols脚本。
  • Kivy当前已安装在Applications文件夹中
  • 通过从他们的Github仓库下载代码并运行,正在使用Pyinstaller 2.0。
  • 我正在使用Python 2.7

代码:

这是我尝试使用示例创建应用程序的规范文件:

# -*- mode: python -*-

from kivy.tools.packaging.pyinstaller_hooks import install_hooks
install_hooks(globals())

a = Analysis(['/Users/karthik/Desktop/SHRINK/kivy/examples/guide/quickstart/main.py'],
             pathex=['/Users/karthik/Desktop/SHRINK/pyinstaller-2.0'],
             hiddenimports=[])
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=1,
          name=os.path.join('build/pyi.darwin/day2', 'day2'),
          debug=False,
          strip=None,
          upx=True,
          console=False )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=False,
               name=os.path.join('dist', 'day2'))
app = BUNDLE(coll,
             name=os.path.join('dist', 'day2.app'))

任何帮助都将不胜感激。
1个回答

1
我看到了一些问题,您在没有导入的情况下使用了 os 库,这可能会导致一些问题。根据这里的说明(http://kivy.org/docs/guide/packaging-windows.html),您需要在 COLLECT 语句中包含路径,以便 kivy 可以找到所有内容。
coll = COLLECT( exe, Tree('../kivy27/examples/demo/touchtracer/'),
           a.binaries, Tree([f for f in os.environ.get('KIVY_SDL2_PATH', '').split(';') if 'bin' in f][0])
           #...
           )

Kivy 1.9.0使用SDL2而不是Pygame,所以您还需要将pyinstaller链接到它。根据我的经验,通过Pyinstaller工作Kivy相当挑剔,因此我建议尝试遵循我上面发布的链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接