Загрузка...

I cant compile .ru into exe

Thread in Python created by ggvpsk Jan 26, 2025. 231 view

  1. ggvpsk
    ggvpsk Topic starter Jan 26, 2025 0 Jan 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, на форуме есть функция вставки кода
      Code
      пример
      нажмите на плюсик и выберите "код"
  2. eternal
    eternal Jan 26, 2025 звёзды от меня https://lolz.live/threads/8939583/ 14,785 Aug 2, 2018
    так в папку с экзешником засунь нужные файлы
     
    1. ggvpsk Topic starter
      eternal, Мне надо чтобы всё было 1 файлом
    2. View the next comments (4)
  3. DiscordSell
    DiscordSell Jan 26, 2025 3973 Oct 26, 2024
    ии в помощь
     
  4. 228
    228 Jan 26, 2025 :catboom::catboom::catboom: 2046 Dec 25, 2020
    другой используй
     
  5. rage
    rage Jan 26, 2025 thy kingdom come 725 Jan 18, 2020
    сорян бро это новый мем
    [IMG]
     
  6. nnbro9
    nnbro9 Jan 26, 2025 разработка на Python - https://lolz.live/threads/8791935/ 29 Aug 11, 2022
  7. эмпатия
    эмпатия Jan 26, 2025 Banned 1158 Oct 27, 2020
    +скрипт на швейку, спасибо
     
  8. tayz3r
    tayz3r Jan 26, 2025 1 Oct 11, 2023
    Используй pyinstaller,
    вот пример команды:

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

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

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