我试图将.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