Скомпилированная из py в exe программа не запускается

Написал программу и решил отправить друзьям, не имеющих python, но когда скомпилировал я решил проверить её работоспособность и в итоге открывается терминал и он почти сразу закрывается. Компилировал как через pyinstaller, так и auto-py-to-exe, но не помогло. Если кто-то знает, как это исправить то скажите как.

КОД:

import math
import threading
import time

# import keyboard
import mouse

import tkinter as ttk
from tkinter import messagebox as msgbox


class TK(ttk.Tk):
    def __init__(self, value):
        super().__init__()

        # class_pos_mouse = value["pos_mouse"]
        class_is_working = value["is_working"]
        # class_delay = value["delay"]
        class_distance = value["distance"]

        text_btn = "OFF" if class_is_working else "ON"
        self.btn = ttk.Button(text=text_btn, command=change)

        text_lbl = f"{round(class_distance)}p (pixels)"
        self.lbl = ttk.Label(text=text_lbl)

    def start_settings(self):
        self.geometry("200x50")
        self.title("MMC")

    def place(self):
        self.btn.pack()
        self.lbl.pack()

    def mainloop(self, n=0):
        self.start_settings()
        self.place()
        super().mainloop(n)


def mileage_count():
    global pos_mouse
    global distance

    while True:
        if is_working:
            new_pos_mouse = mouse.get_position()

            if pos_mouse != new_pos_mouse:
                distance += math.hypot(abs(pos_mouse[0] - new_pos_mouse[0]), abs(pos_mouse[1] - new_pos_mouse[1]))

                pos_mouse = new_pos_mouse

                tk.lbl["text"] = f"{round(distance)}p (pixels)"
        else:
            pos_mouse = mouse.get_position()

        time.sleep(delay)


def change():
    global is_working

    is_working = not is_working
    tk.btn["text"] = "OFF" if is_working else "ON"


def on_closing():
    global is_working

    if msgbox.askokcancel("Quit", "Do you want to quit?"):
        with open(file="save.txt", mode="w") as file:
            file.write(str(distance))

        is_working = False
        tk.destroy()


def main():
    thread = threading.Thread(target=mileage_count, daemon=True)

    thread.start()

    tk.protocol("WM_DELETE_WINDOW", on_closing)
    tk.mainloop()


pos_mouse = (0, 0)
is_working = False
delay = 0.001

with open(file="save.txt", mode="r") as file:
    distance = float(file.read())

tk = TK(value={"pos_mouse": pos_mouse,
               "is_working": is_working,
               "delay": delay,
               "distance": distance})


if __name__ == "__main__":
    main()

Ответы (0 шт):