如何解决将包含mp3歌曲的python文件转换为可执行文件
所以我正在尝试使用pyinstaller将tkinter文件转换为可执行文件。我已经完成了图片处理,但是当我创建包含某种音频的可执行文件时,它会显示“无法执行脚本playmusic”(playmusic是脚本名称)。我尝试使用.wav歌曲更改脚本名称,将dist文件夹中的exe文件与歌曲一起替换到脚本目录中,但是这些都不起作用。我也尝试过使用自动py-to-exe,但是它不起作用。这首歌是用pygame播放的,并且在VS Code中没有任何问题。我使用的是pyinstaller还是其他模块都没有关系。我在Windows 10上使用python 3.8.2。
这是python脚本:
import tkinter as tk
from pygame import mixer,time
root = tk.Tk()
root.title("Music Player")
root.geometry("300x100+800+100")
label1=tk.Label(root,text="Start Song: ",fg='green',anchor="w")
label1.grid(row=0,column=0)
file = 'Ignite.mp3'
mixer.init()
mixer.music.load(file)
play = lambda: mixer.music.play()
button1 = tk.Button(root,text = 'Play',command = play)
while mixer.music.get_busy(): time.Clock().tick(10)
button1.grid(row=0,column=2)
pause = lambda: mixer.music.pause()
button2 = tk.Button(root,text="Pause",command = pause)
button2.grid(row=0,column=3)
resume = lambda: mixer.music.unpause()
button3 = tk.Button(root,text="Resume",command = resume)
button3.grid(row=0,column=4)
stop = lambda: mixer.music.stop()
button4 = tk.Button(root,text="Stop",command=stop)
button4.grid(row=0,column=5)
root.mainloop()
有点像音乐播放器。 我运行以执行脚本的pyinstaller代码如下:
pyinstaller --add-data "Ignite.mp3;." --onefile -w playmusic.py
它的执行没有问题,但是当我运行执行的脚本时,在弹出窗口中显示“无法执行脚本播放音乐”
解决方法
文件必须位于同一目录中,脚本才能正确执行。
如果在脚本中您说:
file = 'Ignite.mp3'
mixer.music.load(file)
,如果文件不是您的目录(与脚本)相同。它将在python脚本中引发错误,因此在您的exe中也会引发错误。
或者您可以说一些绝对路径:
file = 'C:\\somefolder\\some_more_folder\\Ignite.mp3'
mixer.music.load()
但是,当您制作一个exe文件以将其发布给某些人时,建议您使用第一种方法,因此您需要安装文件,因此绝对路径将不起作用,因为它仅是计算机上的路径。但是ypu可以指定安装到程序文件的位置,并且仍然可以找到一种方法,但是建议使用第一种方法。
因此,请确保您可以使用pyinstaller代码制作exe:
pyinstaller -F -w playmusic.py
希望它有所帮助,请让我知道是否还有其他错误。
欢呼
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。