使用PyInstaller将Kivy转换为Exe.由于SoundLoader,[无法执行脚本主]



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

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系统上获得声音。我按照以下步骤创建了适用于Windows的exe:KIVY软件包。如果我不使用SoundLoader行,我的exe就会运行。但如果我加上这个,我甚至无法打开控制台或应用程序,因为出现了这个错误。谢谢你的建议。

如果您有同样的问题,请在.spec文件中修复以下行:

from kivy_deps import sdl2, glew, gstreamer
...
...
datas=[('Filestest.wav','.')
...
...
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins +  gstreamer.dep_bins)],
...
...

为我工作。

这对我有效。

from kivy_deps import sdl2, glew, gstreamer
datas=[(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)],

下一件事帮助了我:

python -m pip install kivy[full]

这覆盖了之前的conda安装:

conda install -c conda-forge kivy

之后mp3文件播放良好。

从pip(我的目录(安装后的包更改:

f:pzzlibsite-packages (from kivy[full]) (0.3.1)中的kivy-deps.glew~=0.3.1

f:pzzlibsite-packages (from kivy[full]) (0.3.3)中的kivy-deps.gstreamer~=0.3.3

最新更新