我一直在关注来自Kivy.org的Creating Packages for Mac OS,以便尝试为我的Kivy .py文件创建一个.app。
然而,尽管遵循指南,我的应用程序永远不会工作,它在打开时立即崩溃。 Pyinstaller关于构建的警告被转储到包含以下内容的.txt中:
W: no module named kivy.graphics.ClearBuffers (top-level import by kivy.uix.screenmanager)
W: no module named kivy.core.spelling.SpellingBase (top-level import by kivy.core.spelling.spelling_enchant)
W: no module named kivy.core.image.ImageLoader (top-level import by kivy.core.image.img_gif)
W: no module named multiprocessing.RLock (top-level import by multiprocessing.sharedctypes)
等等。 。 。 (完整文件很长,但可以查看here)
似乎根本找不到任何kivy模块,因此它们必须由于某种原因而未被包含在内。这就是我想问的问题。
截至目前,我一直在使用命令:
kivy pyinstaller.py myapp.py
kivy pyinstaller.py myapp.spec
分别创建spec文件和App。 spec文件似乎没有任何遗漏。 (我已经包含了钩子,并检查过去用于创建.exe的工作规范文件)
# -*- mode: python -*-
# -*- coding: utf-8 -*-
from kivy.tools.packaging.pyinstaller_hooks import install_hooks
install_hooks(globals())
a = Analysis(['Meep/Meep.py'],
pathex=['/Users/Owatch/Documents/pyinstaller/Meep'],
hiddenimports=[],
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='Meep',
debug=False,
strip=None,
upx=True,
console=False , icon='Meep/icon.icns')
coll = COLLECT(exe,Tree('/Users/Owatch/Desktop/examples/demo/touchtracer/'),
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='Meep')
无论如何,我不确定为什么会这样。我的怀疑主要是以下几点:
1:我将pyinstaller下载为.zip,因为我在系统上找不到.py文件。虽然它通过pip安装在我认为是一个单独的python安装(我有2.7分开)
2:我对touchtracer的引用有些不对,它链接到div for Kivy中捆绑的touchtracer目录。 (名为Examples的文件夹,我将其拖到桌面上)
除此之外,我担心自己很无能为力。感谢您的帮助(如果可以!)
答案 0 :(得分:1)
该错误似乎与有缺陷的spec文件相关联。没有其他报道。