Создал код и когда пишу в powershell pyinstaller --onefile --windowed --icon=icon.ico testret.py пишет IndexError: tuple index out of range?
import tkinter as tk
from tkinter import filedialog, messagebox
import os
from sympy import sympify # type: ignore
import pyttsx3 # type: ignore
# Инициализация синтезатора речи
engine = pyttsx3.init()
# Функция для озвучивания текста
def speak(text):
engine.say(text)
engine.runAndWait()
# Создание окна
window = tk.Tk()
window.title("TESTRET")
window.geometry("800x600")
window.configure(bg="black") # Черный фон
# Функция для загрузки данных
def load_data():
data_folder = r"C:\ChatGPT\dist\data123" # Папка, куда будем сохранять данные
if not os.path.exists(data_folder):
os.makedirs(data_folder) # Создаем папку, если ее нет
# Получаем путь к файлу для загрузки
file_path = filedialog.askopenfilename(filetypes=[("Text files", "*.txt")]) # Открыть диалог выбора файла
if file_path:
try:
with open(file_path, "r", encoding="utf-8") as file:
data = file.read() # Чтение содержимого файла
# Находим следующее доступное имя файла
existing_files = [f for f in os.listdir(data_folder) if f.endswith(".txt")]
next_file_num = len(existing_files) + 1
new_file_name = f"txt{next_file_num}.txt"
# Сохраняем данные в новый файл
new_file_path = os.path.join(data_folder, new_file_name)
with open(new_file_path, "w", encoding="utf-8") as new_file:
new_file.write(data)
messagebox.showinfo("Загружено", f"Файл сохранен как {new_file_name}") # Уведомление о том, что файл загружен
except Exception as e:
messagebox.showerror("Ошибка", f"Не удалось загрузить файл: {e}") # Показать ошибку, если не удается загрузить файл
# Функция для открытия базы данных
def open_database():
data_folder = r"C:\ChatGPT\dist\data123" # Папка, где хранится база данных
if os.path.exists(data_folder):
os.startfile(data_folder) # Открыть папку с данными
else:
messagebox.showerror("Ошибка", "Папка с данными не найдена!") # Если папка не существует, показать ошибку
# Пример гигантского кортежа
numbers_tuple = tuple(range(1, 1000001212121)) # Кортеж с 1 миллионом элементов
# Функция, которая будет работать с кортежем
def use_tuple():
try:
# Пример использования кортежа: вычисляем сумму всех элементов
result = sum(numbers_tuple)
messagebox.showinfo("Результат", f"Сумма чисел в кортеже: {result}")
except IndexError as e:
messagebox.showerror("Ошибка", f"Ошибка индекса: {e}")
except Exception as e:
messagebox.showerror("Ошибка", f"Произошла ошибка: {e}")
# Функции для калькуляторов
def simple_calculator():
def calculate():
try:
result = sympify(entry.get()) # Преобразовать введенную строку в математическое выражение
result_label.config(text="Результат: " + str(result))
except Exception as e:
result_label.config(text="Ошибка: " + str(e)) # Показать ошибку, если выражение некорректное
# Кнопки для загрузки данных, открытия базы данных и калькуляторов
load_button = tk.Button(main_frame, text="Загрузить данные", command=load_data, font=("Arial", 14), fg="black", bg="orange")
load_button.grid(row=0, column=0, padx=10, pady=10)
1. Оформи код, нечитаемо. Кнопка </> в помощь.
2. Когда возникает ошибка: при сборке скрипта? Или при запуске?
3. Проявляется ли она, если запустить скрипт без инсталлера?
4. Каков полный текст ошибки? Скопируй и вставь сюда.