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()