Ошибка Failed execute script, когда использую pyinstaller.

veDO

Новичок
Пользователь
Май 15, 2020
12
4
3
Скомпилировал код через pyinstaller, по гайдам с форумов вшил туда .png файл, беру его root.iconbitmap ('sys._MEIPASS + "/clock.png"') вот так. Но мне выдает ошибку из шапки. Что делать, где я ошибся? На всякий случай приложу код.
Python:
from tkinter import *
import time
import pyglet
import threading
player = pyglet.media.Player()
after_id = ''
time2 = 0
   
root = Tk()
root.resizable( width = False, height = False )
root.geometry('320x150')
root.title('TIMER BY VEDO')
root ['bg'] = 'white'
root.iconbitmap ('sys._MEIPASS + "/clock.png"')
text_time = Label(text = 'Через сколько?(в мин, с, ч)', font = 'Consolas 12',
fg = '#3d3d42',
bg = '#ccc')
check = IntVar()
test = Entry(root, font = 'Consolas 12',relief = 'raised')
enter = Button (text = 'Начать',relief = 'raised', font = 'TimesNewRoman 12')
soundyes = Checkbutton(text = 'Не проигрывать звук по истечению времени', font = 'Consolas 9', bg = 'white', variable=check)
oscar = Label(text = 'Осталось 0с', font = 'Consolas 15', bg = 'white', fg = 'white')
text_time.pack()
test.pack()
soundyes.pack()
enter.pack()
oscar.pack()
def tick(time2):
    while time2 > 0:
        oscar.config(text='Осталось ' + str(time2) + 'с', bg='black')
        time2 -= 1
        time.sleep(1)
    oscar.config(text='Время истекло.')
    player.volume = 0.5
    song = pyglet.media.load('C:/Users/Public/Music/bud.mp3')
    player.queue(song)
    if not check.get():
        player.play()
        time.sleep(10)
        player.pause()
def timerstart (event):
    while 1:
        try:
            if test.get():
                timer = test.get()
                check = timer.replace('с',' с').replace('мин', ' мин').replace('ч', ' ч').replace('c', ' с').split()
                num = int(check[0])
                draft = check[1]
                if draft == 'ч':
                    time2 = num*3600
                elif draft == 'мин':
                    time2 = num*60
                elif draft == 'с':
                    time2 = num
                time2 = int(time2)
                threading.Thread(target=tick, args=[time2]).start()
                break
            else:
                oscar.configure(text = 'Введите время!', font = 'Consolas 15', bg = 'red', fg = 'white')
                break
        except:
            oscar.configure(text = 'Ошибка во времени!', font = 'Consolas 15', bg = 'red', fg = 'white')
            break
           

enter.bind('<Button-1>', timerstart)

root.mainloop()
 
Последнее редактирование:

Форум IT Специалистов