• Почему код выдает ошибку, хотя файл llvmlite.dl находится в указанном каталоге?

    Vindicar
    @Vindicar
    RTFM!
    Возможно, проблема с разрядностью. Если DLL на 32 бита а питон на 64 (или наоборот), он её не подгрузит. Это верно практически для любой программы.

    EDIT: и да, как ниже написали, та же самая ошибка будет, если не найдена DLL, требуемая этой DLL. Утилита Dependency Walker в помощь. Может, нужен специфичный пакет MS VC++ Redistributable.
    Ответ написан
    2 комментария
  • Как сделать, чтобы telegram бот принимал текст юзера только 1 раз?

    work_jabir
    @work_jabir
    Для таких задач лучше использовать базу данных, в которой будет хранится информация о том, что сообщение было отправлено.

    @dp.callback_query_handler(text_contains='action_1')
    async def process_callback_button(call):
        await bot.send_message(call.message.chat.id, 'Напишите подробно о вашей вакансии. Можно с изображениями.')
    
    
        @dp.message_handler(content_types=['text'])
        async def start_command(message: types.Message, message_has_been_sent: list = []):
    
         if not message_has_been_sent:
            text = message.chat.id
            await message.answer(
            'Вы точно хотите отправить сообщение?',
            reply_markup=InlineKeyboardMarkup().add(
                InlineKeyboardButton('Назад', callback_data='back'),
                InlineKeyboardButton('Отправить', callback_data='forward'),one_time_keyboard=True
                )
            )
            message_has_been_sent.append(1)


    Данный пример, грубо говоря, для «поиграться». Когда вы перезапустите код – потеряется информация о том, что сообщение уже было отправлено. Также, переменная со списком не очищается и висит в памяти, что может привести к полному исчерпанию памяти с течением времени.

    Изучите работу с asyncpg и будет вам счастье.
    Ответ написан
    Комментировать