Задать вопрос
  • Вылетает pygame при нажатии на окно, никак не могу понять, что не так?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    У вас ошибка здесь:
    while y_house < HEIGHT:
        y += 9.8
    Вы меняете y, но y у вас никак не связано с y_house, из-за чего этот цикл получается бесконечным (y_house не меняется и так и остается меньше HEIGHT).

    Поэтому вам надо сделать вот так:
    while y_house < HEIGHT:
        y_house += 9.8

    Так всё работает
    Ответ написан
    2 комментария
  • Python не видит библиотеки ffmpeg что делать?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Установить более старую версию python и arcade. Последние нерелизные версии работают нестабильно, особенно в python 3.12 и выше

    UPD: Попробуйте установить python 3.10 и arcade 2.6.17
    (pip install arcade==2.6.17)
    Ответ написан
    5 комментариев
  • Как в aiogram включить remain anonymous?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Если бот в администраторах, то
    можно
    from aiogram import Bot, Dispatcher, types
    from aiogram.types import ChatPermissions
    
    API_TOKEN = 'YOUR_BOT_API_TOKEN'
    
    bot = Bot(token=API_TOKEN)
    dp = Dispatcher(bot)
    
    @dp.message_handler(commands=['start'])
    async def start(message: types.Message):
        chat_member = await bot.get_chat_member(chat_id=message.chat.id, user_id=bot.id)
        if chat_member.status not in ['administrator', 'creator']:
            await message.reply("Бот должен быть администратором группы.")
            return
    
        await bot.promote_chat_member(
            chat_id=message.chat.id,
            user_id=bot.id,
            is_anonymous=True,
            can_manage_chat=True,
            can_delete_messages=True,
            can_manage_video_chats=True,
            can_restrict_members=True,
            can_promote_members=True,
            can_change_info=True,
            can_invite_users=True,
            can_pin_messages=True
        )
    
        await message.reply("Бот теперь администратор и может отправлять сообщения от имени группы.")
    
    if __name__ == '__main__':
        from aiogram import executor
        executor.start_polling(dp, skip_updates=True)
    Ответ написан
    2 комментария
  • Ошибка "cannot pickle '_tkinter.tkapp' object" при использовании Multiprocessing, почему?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Дебильно, но работает
    код
    import time
    import multiprocessing
    from threading import Thread
    from tkinter import *
    from tkinter import ttk
    
    # Функция контроля работы потока расчета
    
    
    def monitor_process(calc_process, window):
        while calc_process.is_alive():
            print("Process is running")
            time.sleep(0.2)
        else:
            window.destroy()
    
    
    # Функция выполнения расчета
    
    
    def perform_calculation(multiplier):
        i = 0
        while i < 10**6:
            i += 1
            result = i * multiplier
            print(result)
    
    
    # Функция открытия окна при расчете
    
    
    def start_calculation(output_label):
        # Функция закрытия окна по нажатию кнопки
        def stop_calculation():
            calc_process.terminate()
            window.destroy()  # Закрытие окна
    
        # Новое вспомогательное окно
        window = Toplevel()
        window.geometry(
            f"{int(main_window_width / 2)}x{int(main_window_height / 2)}+{int(
                screen_width + main_window_width / 4)}+{int(screen_height + main_window_height / 4)}"
        )
    
        stop_button = Button(
            master=window,
            text="Stop",
            cursor="hand2",
            border=4,
            command=stop_calculation,
            activebackground="white",
            activeforeground="black",
            bd=5,
            font=("Times", "12"),
        )
        stop_button.pack(anchor="sw", pady=5, padx=0)
    
        calc_process = multiprocessing.Process(
            target=perform_calculation, args=(2,), daemon=True
        )  # Поток расчета
        monitor_thread = Thread(
            target=monitor_process, args=(calc_process, window), daemon=True
        )  # Поток контроля
        calc_process.start()  # Запуск потока расчета
        monitor_thread.start()  # Запуск потока контроля
    
        window.mainloop()
    
    
    if __name__ == "__main__":
        root = Tk()
        # Размер и положение окна
        main_window_width = 500
        main_window_height = 500
        # Определение разрешения экрана по ширине
        screen_width = root.winfo_screenwidth()
        # Определение разрешения экрана по высоте
        screen_height = root.winfo_screenheight()
        # Определение координат середины экрана по ширине
        screen_width = screen_width // 2 - main_window_width // 2
        # Определение координат середины экрана по высоте
        screen_height = screen_height // 2 - main_window_height // 2
        root.geometry(
            f"{main_window_width}x{main_window_height}+{int(screen_width)
                                                        }+{int(screen_height)}"
        )  # Размер и положение окна
    
        # Надписи
        label_res = Label(master=root, text="Запуск расчета")
        output_label = Label(master=root, text="")
    
        # Кнопка запуска расчета
        start_button = Button(
            master=root,
            text="ПУСК!",
            cursor="hand2",
            border=4,
            command=lambda: start_calculation(output_label),
            activebackground="white",
            activeforeground="black",
            bd=5,
            font=("Times", "12"),
        )
    
        # Размещение виджетов
        label_res.pack(pady=5)
        start_button.pack(anchor="center", pady=50, padx=0)
    
        root.mainloop()
    Ответ написан
  • Как преобразовать проект в EXE файл с сохранением фотографий?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    1. Устанавливаем pyinstaller:
      pip install pyinstaller
    2. Во входной точке вашего приложения добавляете
      try:
          os.chdir(sys._MEIPASS)
      except AttributeError:
          pass
      Ну например
      import os
      import sys
      
      # some code
      
      if __name__ == "__main__":
          try:
              os.chdir(sys._MEIPASS)
          except AttributeError:
              pass


    3. Кидаем фотографии в какую-нибудь папку внутри проекта, например images
    4. В командной строке заходим в папку которая на один уровень выше images. Например, если вы храните фото в project/images зайдите в project
    5. Запускаем
      pyinstaller main.py -F -w -n "Name_of_project" --add-data "images/*;images"

    6. В папке dist будет лежать exe. Запускаем и проверяем
    Ответ написан
    Комментировать
  • Почему теряется соединение с базой данных во flask?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Скорее всего это происходит из-за слишком долгой неактивности. Если вы используете pymysql, то можно попробовать
    import mysql.connector
        
    
    conn = mysql.connector.connect(
        host="localhost",
        user="username",
        password="password",
        database="database_name",
        connection_timeout=86400,    # таймаут подключения в секундах (86400 секунд = 24 часа)
    )

    Также можно попробовать ping, чтобы поддерживать соединение pool_ping_interval=300
    Ответ написан
  • Почему гугл определяет не верную страну через VPN?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    По языку в браузере и часовому поясу
    Ответ написан
    Комментировать
  • Царапины на контактах SSD M2 или что это?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
  • Возможно ли отобразить окно openCV на python в окне WPF c#?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Как вариант, вызывать python-скрипт из c# с помощью PythonNet
    Ответ написан
    Комментировать
  • Как правильно работать с JobQueue в python telegram bot?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Скорее всего это из-за того, что он воспринимает ваше время, как время UTC, а не как время в вашем часовом поясе. Например, если ваше время UTC+3 (московское время), и вы пишите datetime.time(hour=12, minute=50, second=0), то на самом деле это будет 15:50 по МСК. Т. е. для решения этой проблемы, я думаю, нужно или вычитать из времени сколько-то часов (в данном случае 3) или конвертировать местное время в UTC:
    from datetime import datetime 
    import pytz
    
    local = pytz.timezone("Europe/Moscow")
    naive = datetime.strptime("2024-12-4 12:50:00", "%Y-%m-%d %H:%M:%S")
    local_dt = local.localize(naive, is_dst=None)
    utc_dt = local_dt.astimezone(pytz.utc)
    Ответ написан
  • Как создать фоновую задачу в боте?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    aiogram==2.25.1

    Сколько раз твердили миру... Да не используйте вы 2.x! В 21 веке все уже перешли на 3.x

    Как мне такое реализовать, с учетом того, что я <...> в асинхроне ничего не понимаю?

    Так может надо что-то понять? Почитать, поразбираться, для начала?

    Вывод: готовый код никто за вас писать не будет. Изучайте сначала программирование и базовые основы, а потом рвитесь в бой. Тем более, если это ваша "хотелка" и она не к спеху
    Ответ написан
    8 комментариев
  • Иллюстрации 3D в стиле Сбера где можно купить, достать? По каким запросами искать?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    ChatGPT, Copilot и что там еще
    Ответ написан
    1 комментарий
  • Ошибка при подключение к PostgreSQL в Docker через Python psycopg2. В чем проблема?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    У вас неправильный пароль. Введите правильный пароль и все ошибки уйдут.
    Ну и это
    finally:
      if connection: # Завершение работы базы данных
        connection.close()
        print("Завершение работы базы данных")
    замените на это
    else:
      if connection: # Завершение работы базы данных
        connection.close()
        print("Завершение работы базы данных")

    Так как блок finally выполняется в любом случае, а else только если не возникло исключения.
    Ответ написан
  • TypeError: __init__() takes 1 positional argument but 2 were given у меня проект на aiogram плюс sqlalhemy ,но я совсем недавно начал?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Учиться, учиться и ещё раз учиться. А не ботов писать.
    Ответ написан
    Комментировать
  • Как запретить отправку выбранной геолокации и медиа в боте?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Нет, нельзя. Медиа можно проверять после получения по дате
    Ответ написан
    Комментировать
  • Как расшифровать 1685700050?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Ну если это время, то:
    import datetime
    
    timestamp = 1685700050
    str_time = datetime.datetime.fromtimestamp(timestamp)
    print(str_time)

    У меня получилось 2023-06-02 13:00:50

    UPD. Это не код, а UNIX-время - количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года
    Ответ написан
    Комментировать
  • Как мне проигнорировать этот Подкаталог "old" и прочитать данные только из списка?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Ну если я правильно понял, то:
    import os
    
    path = "data/"
    list_dir=['IRK','MGD','SAH','KHA','KAM']
    for root_dir in list_dir:
        for root, dirs, files in os.walk(os.path.join(path, root_dir)):
            for kmlfile in files:
                print(kmlfile)
    Ответ написан
  • TypeError: Parameters to generic types must be types. Got Ellipsis.?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Установить более свежую версию python или установить болле старую версию asyncpg-lite
    Ответ написан
  • Как мне сделать так чтобы мой бот не переставал работать, когда пк выключен?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    На любой веб-хостинг. Из бесплатных есть Heroku

    UDP. В PythonAnyWhere можно в консоли bash запустить программу и она будет работать даже когда вы закроете браузер. Только в бесплатной версии есть ограничение на использование ЦП
    Ответ написан
    9 комментариев
  • Как получить баланс карты сбербанк?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Вообще-то никак. А вдруг вы мошенник?
    Ответ написан
    Комментировать