Как запустить бота Telegram у себя на компьютере? Как установить библиотеки?

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
import logging

может нужно будет)

UPD: я пробовал устанавливать pip instal python дальше создавал start.bat со следующей информацией:

@echo off
python bot.py
pause

введите сюда описание изображения

но почему то не работает *(

Суть: При нажатии кнопки /start пользователю будет предложено подписаться на канал @segs. При нажатии кнопки /check будет проверена подписка на канал и в зависимости от результата будет отправлено соответствующее сообщение. Если проверка пройдена успешно, пользователю будет предложено ввести число больше 7400000. При нажатии кнопки /get будет проверено введенное число и отправлено соответствующее сообщение. Если число больше 7400000, пользователю будет предложено нажать кнопку /finish для завершения

Код:

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
import logging


logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)


def start(update, context):
    keyboard = [[InlineKeyboardButton("Подписаться на канал", url="https://t.me/segs")]]
    reply_markup = InlineKeyboardMarkup(keyboard)
    context.bot.send_message(chat_id=update.effective_chat.id, text="Добро пожаловать! Пожалуйста, подпишитесь на канал @segs.", reply_markup=reply_markup)


def check(update, context):
    user_id = update.effective_user.id
    subscribed = context.bot.get_chat_member("@segs", user_id).status == "member"
    if subscribed:
        keyboard = [[InlineKeyboardButton("Получить", callback_data="get")]]
        reply_markup = InlineKeyboardMarkup(keyboard)
        context.bot.send_message(chat_id=update.effective_chat.id, text="Проверка прошла успешно! Введите число больше 7400000.", reply_markup=reply_markup)
    else:
        context.bot.send_message(chat_id=update.effective_chat.id, text="Вы не подписаны на канал @segs. Пожалуйста, подпишитесь и повторите проверку.")


def get(update, context):
    query = update.callback_query
    number = int(query.message.text.split()[-1])
    if number > 7400000:
        keyboard = [[InlineKeyboardButton("Завершить", callback_data="finish")]]
        reply_markup = InlineKeyboardMarkup(keyboard)
        context.bot.send_message(chat_id=query.message.chat_id, text="Успешно!", reply_markup=reply_markup)
    else:
        context.bot.send_message(chat_id=query.message.chat_id, text="Число должно быть больше 7400000.")


def finish(update, context):
    query = update.callback_query
    context.bot.send_message(chat_id=query.message.chat_id, text="Спасибо за использование бота!")

def main():
    updater = Updater("ЗДЕСЬ ДОЛЖЕН БЫТЬ МОЙ ТОКЕ !!!!!!!!!!!!!", use_context=True)  

    dp = updater.dispatcher
    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CommandHandler("check", check))
    dp.add_handler(CommandHandler("get", get))
    dp.add_handler(CommandHandler("finish", finish))

    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

Ответы (1 шт):

Автор решения: mrBars1k

Если у Вас в папке с проектом есть отдельное виртуальное окружение (папка .venv обычно), то попробуйте указать точное местоположение интерпретатора в .bat файле:

Пример рабочего варианта:

@echo off
D:\PyProjects\Bot_name\.venv\Scripts\python.exe D:\PyProjects\Bot_name\bot.py %*
pause

Скорее всего, Вы все библиотеку устанавливали именно в виртуальное окружение проекта, а не корневое (всего пк), что правильно. Но при этом запуск производите через корневое.

Также проверьте, ту ли библиотеку Вы используете и, возможно Вам нужен telebot или aiogram.

Проверьте также работу бота на минимально рабочем коде, буквально /start и отправить простое сообщение пользователю или в консоль, без лишних импортов. Если не работает и так, то, вероятнее всего, проблема не в коде, а в зависимостях, библиотеке или интерпретаторе.

→ Ссылка