PY в EXE с customtkinter

Я сделал код задачника. Когда из py делаю в exe компилируется, а при запуске выдает

ack (most recent call last): File "tdl.py", line 1, in ModuleNotFoundError: No module named 'customtkinter' [6084] Failed to execute script 'tdl' due to unhandled exception!

import customtkinter
import customtkinter as ctk
from tkinter import * # type: ignore
import random
import time

cpost = 0
tasks = []

def postsi():
    global cpost
    cpost += 1
    bio.configure(text="Задача добавлена")
    addpost.configure(text=f"На данный момент у вас задач: {cpost}")
    task = task_entry.get()  # Получаем текст задачи из поля ввода
    if task != "":  # Проверка, что текст не пустой
        tasks.append(task)  # Добавляем задачу в список
        update_task_list()  # Обновляем список задач
        task_entry.delete(0, ctk.END)
    
    # Устанавливаем таймер на 3 секунды для изменения текста обратно
    win.after(2500, lambda: bio.configure(text="ToDL - ваш задачник"))

# Инициализация основного окна
win = customtkinter.CTk()
win.title('ToDL')
xy = (win.winfo_screenwidth() - win.winfo_reqwidth()) / 2.55
yy = (win.winfo_screenheight() - win.winfo_reqheight()) / 3
win.geometry("+%d+%d" % (xy, yy))
win.after(201, lambda: win.iconbitmap("C:\\Users\\Tigran\\Desktop\\PY\\todolisticon.ico"))
win.geometry('600x600')

# Функция для обновления списка задач в текстовом поле с номерами
def update_task_list():
    tasktext.configure(state="normal")  # Временно разрешаем редактирование
    tasktext.delete("1.0", ctk.END)  # Очищаем текстовое поле
    for index, task in enumerate(tasks, start=1):  # Перебираем задачи с номерами
        tasktext.insert(ctk.END, f"{index}. {task}\n")  # Вставляем задачу с номером
    tasktext.configure(state="disabled")  # Возвращаем в режим только для чтения

# Создаем простую метку (Label) внутри окна
bio = ctk.CTkLabel(win, text="ToDL - ваш задачник", font=("Arial", 35))
bio.pack(pady=20)

# Создаем метку для отображения количества задач
addpost = ctk.CTkLabel(win, text=f"На данный момент у вас задач: {cpost}", font=("Arial", 35))
addpost.pack(pady=15)

# Список задач
tasktext = ctk.CTkTextbox(win, width=300, height=300)
tasktext.pack(pady=0)
tasktext.place(x=250, y=150)
tasktext.configure(state="disabled")  # Отключаем редактирование сразу

# Поле ввода задачи
task_entry = ctk.CTkEntry(win, width=200)
task_entry.pack(pady=10)
task_entry.place(x=10, y=150)

# Создаем кнопку (Button) внутри окна
addtask = ctk.CTkButton(win, text="Добавить задачу", command=postsi)
addtask.pack(pady=10)
addtask.place(x=40, y=190)

# Открытие окна программы
win.mainloop()

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