使用 PyInstaller 将 Kivy 转为 Exe

我正在尝试将我的 .py 文件转换为 .exe。我在我的 .py 文件中使用 kivy。我意识到检测到致命错误。如果我使用SoundLoader.load('test.wav')则无法执行脚本主要错误。主要文件:


from kivy.app import App

from kivy.core.audio import SoundLoader

from kivy.uix.screenmanager import ScreenManager

class Manager(ScreenManager):

    sound = SoundLoader.load('test.wav')

    sound.play()

class testapp(App):

    def build(self):

        return Manager()

if __name__ == '__main__':

    testapp().run()


如果我运行我的 .py 文件,我会在 Windows 和 Linux 系统上听到声音。如果我不使用 SoundLoader 行,我的 exe 就会运行。但是,如果我添加它,我什至无法打开控制台或应用程序,因为会出现此错误。感谢您的建议。



交互式爱情
浏览 140回答 3
3回答

www说

如果您遇到同样的问题,请在您的.spec文件中修复此行:from kivy_deps import sdl2, glew, gstreamer......datas=[('Files\test.wav','.')......*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins +  gstreamer.dep_bins)],......为我工作..

牛魔王的故事

接下来的事情帮助了我:python -m pip install kivy[full]这与之前的 conda 安装重叠:conda install -c conda-forge kivy之后 mp3 文件播放正常。从 pip(我的目录)安装后的包更改:•kivy-deps.glew~=0.3.1在f:\pzz\lib\site-packages (from kivy[full]) (0.3.1)•kivy-deps.gstreamer~=0.3.3在f:\pzz\lib\site-packages (from kivy[full]) (0.3.3)

一只名叫tom的猫

这对我有用。from kivy_deps import sdl2, glew, gstreamerdatas=[(r'Assets', 'bullet.wav'),         (r'Assets', 'music.wav'),         (r'Assets', 'Explosion.wav')],*[Tree(p) for p in           (sdl2.dep_bins +           glew.dep_bins +  gstreamer.dep_bins)],
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python