【发布时间】:2014-06-19 03:01:27
【问题描述】:
我一直在关注 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
分别创建规范文件和应用程序。 规范文件似乎没有任何遗漏。 (我已经包含了钩子并检查了我过去用来创建 .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 的引用有些错误,它链接到了绑定在 Kivy 的 dmg 中的 touchtracer 目录。 (一个名为 Examples 的文件夹,我把它拖到了我的桌面)
除此之外,恐怕我一无所知。感谢您的帮助(如果可以的话!)
【问题讨论】:
标签: module kivy pyinstaller