Module Kivy:PyInstaller在编译规范文件时不包括Kivy模块
为了尝试为我的Kivy.py文件创建一个.app,我一直在关注Kivy.org 然而,尽管遵循指南,我的应用程序始终无法工作,它在打开时会立即崩溃。Pyinstaller关于构建的警告被转储在一个.txt文件中,其中包含以下内容:Module Kivy:PyInstaller在编译规范文件时不包括Kivy模块,module,kivy,pyinstaller,Module,Kivy,Pyinstaller,为了尝试为我的Kivy.py文件创建一个.app,我一直在关注Kivy.org 然而,尽管遵循指南,我的应用程序始终无法工作,它在打开时会立即崩溃。Pyinstaller关于构建的警告被转储在一个.txt文件中,其中包含以下内容: W:没有名为kivy.graphics.ClearBuffers的模块(由kivy.uix.screenmanager进行顶级导入) W:没有名为kivy.core.spelling.SpellingBase的模块(由kivy.core.spelling.spelli
W:没有名为kivy.graphics.ClearBuffers的模块(由kivy.uix.screenmanager进行顶级导入)
W:没有名为kivy.core.spelling.SpellingBase的模块(由kivy.core.spelling.spelling\u enchant进行顶级导入)
W:没有名为kivy.core.image.ImageLoader的模块(由kivy.core.image.img_gif进行顶级导入)
W:没有名为multiprocessing.RLock的模块(multiprocessing.SharedTypes的顶级导入)
等等。(完整文件很长,但可以查看)
似乎根本找不到kivy模块,所以它们一定是因为某种原因没有被包括在内。这就是我想问的如何修复
到目前为止,我一直在使用以下命令:
kivy pyinstaller.py myapp.py
kivy pyinstaller.py myapp.spec
分别创建等级库文件和应用程序。
规范文件似乎没有丢失任何内容。(我已经包含了钩子,并使用了一个工作规范文件进行了检查,我过去用于创建一个.exe)
无论如何,我不知道为什么会发生这种情况。我的怀疑主要围绕以下几点:
1:我以.zip格式下载了pyinstaller,因为我在系统上找不到.py文件。尽管它是通过pip安装在我认为是一个单独的python安装上的(我有2.7单独安装)
2:我对touchtracer的引用有点错误,它链接到了为Kivy打包的dmg中的touchtracer目录。(名为Examples的文件夹,我将其拖到桌面)
除此之外,恐怕我还很无知。感谢您的帮助(如果可以!)看来该错误与有缺陷的规范文件有关。没有其他报告。您能详细说明一下您的规格有什么问题吗?我生成的规范文件也有问题(它是自动生成的,对吗?)。这意味着,我甚至无法打包touchtracher演示,因为我已经有一段时间不记得了。但我相信这与我创建规范文件的过程有关。我是在编辑等级库文件,而不是为了修改而重新创建等级库文件,由于某些程序原因,等级库文件无法正常工作。如果你不是从零开始这个过程,很可能会有问题。很抱歉,我不能说得更具体了。好的,我从touchtracer demo创建了OSX*.app文件,并通过终端运行该应用程序。但是,我不能双击它来运行它。我还得用终端。我最近一直在为这个问题争论不休。双击Finder中的图标是否可以运行生成的*.app文件?是的,它们可以通过Finder运行。但我只在Mac电脑上建立了它。它们不会或不会在其他使用OSX的Mac电脑上运行。这是一个我还没有解决的问题。好的,很好。我可以运行它。从/Applications/kivy.app手动复制kivy/文件夹。我会在其他Mac电脑上试用。谢谢
# -*- 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')