Ответы пользователя по тегу Python
  • Что делать, в программе ошибка?

    Vindicar
    @Vindicar
    RTFM!
    File "C:\Users\иван\Desktop\нейросеть\vee\lib\site-packages\pixellib\instance\utils.py", line 566, in unmold_mask
    mask = np.where(mask >= threshold, 1, 0).astype(np.bool)

    Пиши багрепорт разрабам pixellib. В модуле numpy действительно нет типа bool, есть bool_ (с подчеркиванием, чтобы избежать конфликта с встроенным bool).
    Ответ написан
  • Как сделать проверку ID в aiogram?

    Vindicar
    @Vindicar
    RTFM!
    Читай доки. Aiogram повторяет многие свойства, описанные в telegram api.
    Например, попробуй потыкать from у объектов сообщений, id и is_bot у объектов пользователей.
    Ответ написан
    Комментировать
  • Как на Python3.10 на хостинге Ubuntu импортировать модули?

    Vindicar
    @Vindicar
    RTFM!
    А) Найди pip от питона 3.10 и запусти его явно. Например, командой pip3.10.
    Б) Используй виртуальное окружение, и ставь пакеты в него. Только убедись, что используешь правильный питон для создания venv.
    Ответ написан
    Комментировать
  • Как выводить людей списком в 1 сообщение?

    Vindicar
    @Vindicar
    RTFM!
    str.join()

    Сначала учи язык, потом бросайся писать ботов.
    Ответ написан
    2 комментария
  • Ошибка при загрузке модуля silero, чо делать?

    Vindicar
    @Vindicar
    RTFM!
    Конфликт версий. Попробуй создать виртуальное окружение (venv) для своего проекта, и поставить нужные пакеты туда. В этом случае они не будут видны в основном системном окружении, и не будут конфликтовать.
    Правда, окружение придётся таскать вместе с проектом.
    Ответ написан
    Комментировать
  • Можно ли сделать проверку и выводить элемент если он существует?

    Vindicar
    @Vindicar
    RTFM!
    Читай, как пользоваться словарями. В частности, метод get().
    Ответ написан
    Комментировать
  • Как изменить вывод из PyMySQL?

    Vindicar
    @Vindicar
    RTFM!
    Код вернул тебе словарь с одним ключом 'username'. Читай, как пользоваться словарями и как получить значение по известному ключу.

    И да, если ты не узнаёшь базовые структуры данных питона, за ботов браться тебе рановато.
    Ответ написан
    Комментировать
  • Почему не меняются кнопки в боте?

    Vindicar
    @Vindicar
    RTFM!
    Кнопки привязаны к сообщению. Чтобы отправить новые кнопки, нужно послать новое сообщение. Ты этого не делаешь.
    Ответ написан
  • Тайминг в сообщении?

    Vindicar
    @Vindicar
    RTFM!
    Модуль time. Храни для каждого пользователя сведения о том, когда он успешно вызвал команду последний раз.
    При вызове команды проверяй, есть ли это время, и если есть, достаточно ли времени прошло.

    Код - сам.
    Ответ написан
    Комментировать
  • Ошибка в боте 'NoneType' object has no attribute 'lower'?

    Vindicar
    @Vindicar
    RTFM!
    Очевидно, event.obj.text содержит значение None по какой-то причине. Проверяй значение, прежде чем пытаться вызывать его методы.
    Ответ написан
  • Как изменить кортеж в файле?

    Vindicar
    @Vindicar
    RTFM!
    Не изобретать велосипед, а использовать формат JSON. Средства работы с ним в питоне есть из коробки, в одноименном модуле.

    Если данных много, стоит посмотреть в сторону sqlite, но тогда файл будет непригоден для ручной правки, да и тема баз данных требует больше внимания и усилий.
    Ответ написан
  • Выдает ошибку после того как нажимаю команду /buy. Как исправить ошибку?

    Vindicar
    @Vindicar
    RTFM!
    Один из сайтов, на которые ты делаешь запрос через get(), или не отвечает, или недоступен по какой-то другой причине.

    Собственно, наивно думать, что это всегда сработает. Сеть непредсказуема. Сайт может работать, может тормозить, может лежать, может тебя забанить, у тебя может не быть интернета - есть сто и одна причина, почему сайт может не работать. Так что готовься к ошибкам заранее. Заворачивай обращения к сайту в try-except, продумывай, что делать, если обращение не удалось, и т.д.
    Ответ написан
    Комментировать
  • Почему код перестает работать когда пишу с Numpad?

    Vindicar
    @Vindicar
    RTFM!
    По поводу твоего второго вопроса: listener - это почти наверняка поток выполнения. И я подозреваю, что этот поток отмечен как daemon - т.е. фоновый поток. Он работает независимо от главного потока, который выполняет тело программы. Главный поток запускает listener, и переходит на input(). Когда input() вернёт управление, главный поток дойдёт до конца программы и завершится.
    Когда в программе на питоне остаются только фоновые потоки, она завершается.
    Так что если тебе нужно, чтобы программа просто ждала, while True: time.sleep(1.0) в помощь. Этот цикл прервать будет сложно.
    Ответ написан
    Комментировать
  • To many values to unpack как фиксить?

    Vindicar
    @Vindicar
    RTFM!
    Если ты используешь распаковку коллекции (т.е. оператор вида a, b, c = some_value), тебе нужно быть уверенным, что some_value содержит в точности столько значений, сколько переменных ты распаковываешь.
    Если это не так, есть три варианта:
    1. Если ты знаешь, сколько значений в возвращаемой коллекции, ты можешь просто добавить нужное количество переменных. a, b, c, _ = some_value. Символом _ обычно обозначаются неиспользуемые переменные/параметры.
    2. Если ты не знаешь, сколько значений в возвращаемой коллекции, или это число меняется, можно не выпендриваться, а работать с индексами. Но тебе нужно быть уверенным, что у тебя всегда есть как минимум нужное число значений.
    a = some_value[0]
    b = some_value[1]
    c = some_value[2]
    # и так далее.

    3. Есть ещё вариант распаковки, который работает, если ты значешь, что значений больше, чем нужно:
    a, b, c, *_ = somevalue

    Я бы посоветовал второй вариант
    Ответ написан
    Комментировать
  • Как извлечь эмодзи из картинки?

    Vindicar
    @Vindicar
    RTFM!
    Окей, гугл, opencv template matching.
    Когда научишься находить заранее известный эмодзи в изображении, делаешь базу эмодзи в искомом приложении и пробуешь находить их по очереди.
    Процесс можно будет ускорить, создав дерево - например, ищешь желтые кружки, если такой нашёлся с определённой степенью уверенности, только тогда ищешь желтые лица. Но это уже подробности.
    Ответ написан
    Комментировать
  • Ошибка при попытке создать асинхронную функцию RuntimeWarning: coroutine 'gather_data' was never awaited?

    Vindicar
    @Vindicar
    RTFM!
    Ну если почитать внимательнее, тебе говорят в чём дело:
    File "D:\all\Programming\Парсинг\main.py", line 46, in gather_data
    pagination = int(soup.find('div', class_='pagination-wrapper').find('ul', class_='pagination-list css-1vdlgt7').find_all('li', class_='pagination-list-item')[-1].text)
    AttributeError: 'NoneType' object has no attribute 'find'

    Ты лихим кавалерийским наскоком пытаешься пройти по тегам, а какого-то из них просто нет в странице.
    Заверни код хотя бы в try-catch, и имей ввиду - сетевые операции по природе своей ненадёжны. Если сайт не твой, он может не ответить, ответить через полчаса, или прислать гоатсе вместо ответа. Так что нужно быть готовым к худшему.
    Ответ написан
  • Как использовать bot.exception_handler(telebot)?

    Vindicar
    @Vindicar
    RTFM!
    class ExHandler:
        def handle(self, error):
            print('Error: ', error)
    Ответ написан
    Комментировать
  • Не могу запустить пишет Error no such table: users?

    Vindicar
    @Vindicar
    RTFM!
    sqlite3.connect('teor.db')
    Ты уверен, что питоновский скрипт и клиент sqlite открывают один и тот же файл с базой данных?
    Ты указал относительный путь, т.е. путь относительно текущего рабочего каталога. Он может совпадать или не совпадать с каталогом, где лежит скрипт.
    На всякий случай, попробуй так:
    import pathlib, sys
    script_dir = pathlib.Path(sys.argv[0]).parent.resolve()  # путь к каталогу скрипта
    db_file = script_dir / 'teor.db'  # путь к файлу БД
    print(db_file)  # для проверки, какой файл открывается
    conn = sqlite3.connect(db_file)
    ...  # далее по тексту


    Также, попробуй убрать одинарные кавычки вокруг имени таблицы и столбцов. Они обычно нужны, если имя содержит пробелы. В твоём случае только усложняют чтение запроса.
    Ответ написан
    1 комментарий
  • Как сделать шифр на питон?

    Vindicar
    @Vindicar
    RTFM!
    str.maketrans() чтобы сделать таблицу преобразований
    str.translate() чтобы её использовать.
    Правда, этот подход работает только для преобразований "1 символ -> 1 символ".
    Если тебе нужно что-то другое, то, как написали выше, словарь в помощь.
    Ответ написан
    2 комментария
  • Можно ли в месте файл указать ссылку?

    Vindicar
    @Vindicar
    RTFM!
    Можно было чуть-чуть погуглить примеры, и почитать код, там всё написано простым английским:
    async def recognize_song(
            self, data: Union[str, pathlib.Path, bytes, bytearray, AudioSegment]
        ) -> Dict[str, Any]:
            """
            Creating a song signature based on a file and searching for this signature in the shazam
            database.
                :param data: Path to song file or bytes
                :return: Dictionary with information about the found song
            """

    Т.е. data принимает или путь к файлу, или байты с содержимым файла.
    Поэтому ответ на твой вопрос: нужно самому скачать аудиофайл по ссылке, и скачанное содержимое отдать в recognize_song().
    Если у тебя ссылка на youtube, то либо используй пакет youtubedl, либо посмотри в примерах есть что-то на тему.
    Ответ написан
    Комментировать