Проблема конвертирования из .py в .exe
Написал простой MP3 плеер на Python, используя Tkinter. При запуске в PyCharm программа работает хорошо, музыка играет.
Далее поставил себе задачу сконвертировать эту программу в .exe. Через командную строку установил auto-py-to-exe, указал путь к файлу .py добавил все папки, которые нужны. Всё успешно конвертировалось и программа запускается, НО не играет сама музыка.
Как можно решить эту проблему? В коде проблема или что-то не так сконвертировал?
from tkinter import *
import pygame
from tkinter import filedialog
root = Tk()
root.title('Music Player')
root.iconbitmap("music.ico")
root.geometry('500x400')
# Initialize Pygame Mixer
pygame.mixer.init()
# Add Song Function
def add_song():
song = filedialog.askopenfilename(initialdir='audio/', title='Choose a Song', filetypes=(("mp3 files", "*.mp3"),))
song = song.replace("G:/MusicPlayer/audio/", "")
song = song.replace(".mp3", "")
song_box.insert(END, song)
# Add Many Songs Function
def add_many_songs():
songs = filedialog.askopenfilenames(initialdir='audio/', title='Choose a Song', filetypes=(("mp3 files", "*.mp3"),))
for song in songs:
song = song.replace("G:/MusicPlayer/audio/", "")
song = song.replace(".mp3", "")
song_box.insert(END, song)
# Play Function
def play_song():
song = song_box.get(ACTIVE)
song = f'G:/MusicPlayer/audio/{song}.mp3'
pygame.mixer.music.load(song)
pygame.mixer.music.play(loops=0)
# Stop Function
def stop_song():
pygame.mixer.music.stop()
song_box.selection_clear(ACTIVE)
# Global Variable Pause
global paused
paused = False
# Pause Function
def pause_song(is_paused):
global paused
paused = is_paused
if paused:
pygame.mixer.music.unpause()
paused = False
else:
pygame.mixer.music.pause()
paused = True
# Playlist
song_box = Listbox(root, bg='grey', fg='green', width=60, selectbackground='black')
song_box.pack(pady=20)
# Button Images
play_btn_img = PhotoImage(file='icon/play_icon.png')
pause_btn_img = PhotoImage(file='icon/pause_icon.png')
stop_btn_img = PhotoImage(file='icon/player_stop_1081.png')
# Create Player Control Frame
controls_frame = Frame(root)
controls_frame.pack()
# Button
play_btn = Button(controls_frame, image=play_btn_img, borderwidth=0, command=play_song)
pause_btn = Button(controls_frame, image=pause_btn_img, borderwidth=0, command=lambda: pause_song(paused))
stop_btn = Button(controls_frame, image=stop_btn_img, borderwidth=0, command=stop_song)
play_btn.grid(row=0, column=1, padx=10)
pause_btn.grid(row=0, column=2, padx=10)
stop_btn.grid(row=0, column=3, padx=10)
# Create Menu
my_menu = Menu(root)
root.config(menu=my_menu)
# Add Song Menu
add_song_menu = Menu(my_menu)
my_menu.add_cascade(label='Add Songs', menu=add_song_menu)
add_song_menu.add_command(label='Add One Song To Playlist', command=add_song)
# Add Many songs
add_song_menu.add_command(label='Add Many Songs To Playlist', command=add_many_songs)
root.mainloop()