Загрузка...

Не могу скомпилировать .ру в exe

Тема в разделе Python создана пользователем ggvpsk 26 янв 2025. 232 просмотра

  1. ggvpsk
    ggvpsk Автор темы 26 янв 2025 0 7 янв 2024
    У меня есть код, я переделываю его в exe через "auto-py-to-exe" мой код не может работать без изображений и звука.
    Может кто подсказать как добавить файлы чтобы код работал







    '''import os
    import random
    import string
    import threading
    import tkinter
    import tkinter as tk
    from tkinter import messagebox, simpledialog
    import configparser
    import shutil
    from PIL import Image, ImageTk
    import cv2
    import numpy as np
    import pygetwindow as gw
    import pyautogui
    import time
    from playsound import playsound
    import keyboard
    import winsound


    tkinter.Tk().withdraw()

    # Задаем шрифт текста и размер в кортеже
    button_font = ('Bahnschrift', 13, 'bold')
    sound_file = 'sdsda.mp3'

    # Основное окно
    def center_window(window, width, height):
    screen_width = window.winfo_screenwidth()
    screen_height = window.winfo_screenheight()
    x = (screen_width // 2) - (width // 2)
    y = (screen_height // 2) - (height // 2)
    window.geometry(f"{width}x{height}+{x}+{y}")

    root = tk.Tk()
    root.title("Центрированное окно")
    root.overrideredirect(True)
    root.configure(bg="#121212")




    # Установка размера окна
    window_width = 500
    window_height = 200

    center_window(root, window_width, window_height)

    def play_sound_after_delay(delay):
    time.sleep(delay)
    playsound(sound_file)

    def close_window():
    root.destroy()

    def stop_script():
    global running, timer_running
    running = False # Останавливаем скрипт
    timer_running = False
    print("скрипт остановлен.")

    def exit_script():
    stop_script()





    # Швейка
    def shweyka():

    shveyka_Wleft = 784
    shveyka_Hleft = 270
    shveyka_Wright = 1134
    shveyka_Hright = 820

    image_names = [f"{i}.png" for i in range(1, 21)]

    clicked_positions = []
    found_positions = []
    running = False # Отслеживание состояния скрипта
    timer_running = False

    def is_position_near(click_position, existing_positions, tolerance=5):
    for pos in existing_positions:
    if abs(click_position[0] - pos[0]) < tolerance and abs(click_position[1] - pos[1]) < tolerance:
    return True
    return False

    running = True
    clicked_positions = [] # Сброс предыдущих позиций перед запуском
    time.sleep(1) # Задержка перед началом работы

    while running:
    screenshot = pyautogui.screenshot(
    region=(shveyka_Wleft, shveyka_Hleft, shveyka_Wright - shveyka_Wleft, shveyka_Hright - shveyka_Hleft))
    screenshot = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)

    for image_name in image_names:
    small_img = cv2.imread(image_name)

    if small_img is None:
    print(f"Couldn't load image: {image_name}")
    continue

    res = cv2.matchTemplate(screenshot, small_img, cv2.TM_CCOEFF_NORMED)
    threshold = 0.9
    loc = np.where(res >= threshold)

    if loc[0].size == 0:
    continue

    for pt in zip(*loc[::-1]):
    click_x = pt[0] + shveyka_Wleft + small_img.shape[1] // 2
    click_y = pt[1] + shveyka_Hleft + small_img.shape[0] // 2
    position = (click_x, click_y)

    if not is_position_near(position, clicked_positions):
    found_positions.append(position)
    clicked_positions.append(position)
    print(f"Found position: {position}")

    if image_name == '1.png':
    pyautogui.click(position[0], position[1])
    time.sleep(0.5)
    else:
    pyautogui.click(position[0], position[1])
    time.sleep(0.5)
    pyautogui.click(position[0], position[1])
    time.sleep(0.5)

    found_positions.clear()
    time.sleep(1)



    def tokarka():
    # Установите границы поиска
    tokarka_Wleft = 660
    tokarka_Hleft = 679
    tokarka_Wright = 1260
    tokarka_Hright = 969

    cnt = 0
    max_attempts = 50
    sleep_time = 0.2

    # Загрузка шаблона один раз вне цикла
    template = cv2.imread('z2.png', cv2.IMREAD_GRAYSCALE)
    if template is None:
    raise ValueError("Шаблон не найден. Проверьте путь к файлу 'z2.png'.")

    while cnt <= max_attempts:
    try:
    # Скриншот ПК
    screenshot = pyautogui.screenshot(
    region=(tokarka_Wleft, tokarka_Hleft, tokarka_Wright - tokarka_Wleft, tokarka_Hright - tokarka_Hleft))
    screenshot_np = np.array(screenshot)
    screenshot_gray = cv2.cvtColor(screenshot_np, cv2.COLOR_BGR2GRAY)

    # Поиск заточки
    result = cv2.matchTemplate(screenshot_gray, template, cv2.TM_CCOEFF_NORMED)

    threshold = 0.9
    loc = np.where(result >= threshold)

    if loc[0].size > 0:
    for pt in zip(*loc[::-1]):
    xf, yf = pt
    yf += 62
    pyautogui.moveTo(xf + tokarka_Wleft, yf + tokarka_Hleft, duration=0)
    break
    else:
    cnt += 1
    time.sleep(sleep_time)

    except Exception as e:
    print(f"Ошибка: {e}")
    break



    def timer(seconds):
    for remaining in range(seconds, 0, -1):
    if not timer_running:
    break
    time.sleep(1)
    print(f"Осталось времени: {remaining} секунд")
    print("Таймер завершен.")


    def start_timer():
    global timer_running
    timer_running = True
    threading.Thread(target=play_sound_after_delay, args=(83,)).start()
    print("Таймер запущен на 83 секунды.")




    #Клавиши запуска бота
    keyboard.add_hotkey('E', start_timer) # Запуск таймера при нажатии E
    keyboard.add_hotkey('F4', exit_script)
    keyboard.add_hotkey('F5', shweyka)
    keyboard.add_hotkey('F6', tokarka)

    # Окно бота №2

    def menusettings():
    settings_window = tk.Toplevel(root)
    settings_window.title("Настройки")
    settings_window.geometry("500x200")
    settings_window.overrideredirect(True)
    settings_window.configure(bg="#121212")
    settings_window.resizable(False, False)

    screen_width = settings_window.winfo_screenwidth()
    screen_height = settings_window.winfo_screenheight()
    window_width = 500
    window_height = 200
    x = (screen_width // 2) - (window_width // 2)
    y = (screen_height // 2) - (window_height // 2)
    settings_window.geometry(f"{window_width}x{window_height}+{x}+{y}")

    # Добавление текстовой надписи в окно настроек
    label = tk.Label(settings_window, text="Информация", bg="#121212", fg="white",
    font=('Bahnschrift', 13, 'bold'))
    label.place(x=180, y=10) # Кординаты кнопки

    # Добавление текстовой надписи в окно настроек
    label = tk.Label(settings_window, text="Швейка запускается на F5", bg="#121212", fg="white",font=('Bahnschrift', 11, 'bold'))
    label.place(x=10, y=40) # Кординаты кнопки

    # Добавление текстовой надписи в окно настроек
    label = tk.Label(settings_window, text="Токарка запускается на F6", bg="#121212", fg="white",
    font=('Bahnschrift', 11, 'bold'))
    label.place(x=10, y=60) # Кординаты кнопки

    # Добавление текстовой надписи в окно настроек
    label = tk.Label(settings_window, text="Перезапуск бота на F4", bg="#121212", fg="white",
    font=('Bahnschrift', 11, 'bold'))
    label.place(x=10, y=80) # Кординаты кнопки

    button = tk.Button(settings_window, text="Запуск", width=10, height=1, font=button_font, command=close_window)
    button.pack(pady=20)
    button.place(x=380, y=150)


    # Кнопки основного меню
    button = tk.Button(root, text="БОТ", width=15, height=2, font=button_font, command=menusettings)
    button.pack(pady=20)
    button.place(x=90, y=70)

    button = tk.Button(root, text="Помощь", width=15, height=2, font=button_font)
    button.pack(pady=20)
    button.place(x=270, y=70)

    root.mainloop()'''
     
    1. Jargonium
      ggvpsk, на форуме есть функция вставки кода
      Код
      пример
      нажмите на плюсик и выберите "код"
  2. eternal
    eternal 26 янв 2025 звёзды от меня https://lolz.live/threads/8939583/ 14 785 2 авг 2018
    так в папку с экзешником засунь нужные файлы
     
    1. Посмотреть предыдущие комментарии (3)
    2. rage
      ggvpsk, не получится
    3. eternal
    4. ЯБылНоКем
      ggvpsk, если вообще отчаишься , то PyInstaller попробуй
  3. DiscordSell
    DiscordSell 26 янв 2025 3973 26 окт 2024
    ии в помощь
     
  4. 228
    228 26 янв 2025 :catboom::catboom::catboom: 2046 25 дек 2020
    другой используй
     
  5. rage
    rage 26 янв 2025 thy kingdom come 725 18 янв 2020
    сорян бро это новый мем
    [IMG]
     
  6. nnbro9
    nnbro9 26 янв 2025 разработка на Python - https://lolz.live/threads/8791935/ 29 11 авг 2022
  7. эмпатия
    эмпатия 26 янв 2025 Заблокирован(а) 1158 27 окт 2020
    +скрипт на швейку, спасибо
     
  8. tayz3r
    tayz3r 26 янв 2025 1 11 окт 2023
    Используй pyinstaller,
    вот пример команды:

    pyinstaller --onefile --add-data "путь_к_ассетам;assets" твой_скрипт.py

    --add-data "путь_к_ассетам;assets" -> путь к ассетам проведи: к примеру у тебя есть папка assets в которой папка asset со всеми ассетами в таком случае пиши путь так: --add-data "assets;asset"

    Если тебе нужно без отладочной консоли то добавь атрибут --noconsole
     
    26 янв 2025 Изменено
  9. детектив
    детектив 27 янв 2025 elvis has left the building 278 19 ноя 2019
    чтобы exe работал с ресурсами, добавь их в папку с exe, либо укажи пути к файлам относительно расположения exe. в "auto-py-to-exe" в разделе "Files" укажи все нужные картинки и звуки
     
Top
Загрузка...