Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module Kivy:PyInstaller在编译规范文件时不包括Kivy模块_Module_Kivy_Pyinstaller - Fatal编程技术网

Module Kivy:PyInstaller在编译规范文件时不包括Kivy模块

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

为了尝试为我的Kivy.py文件创建一个.app,我一直在关注Kivy.org

然而,尽管遵循指南,我的应用程序始终无法工作,它在打开时会立即崩溃。Pyinstaller关于构建的警告被转储在一个.txt文件中,其中包含以下内容:

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')