Как захостить telegram бота на сайте pythonanywhere? | python, telebot
Подскажите пошагово пожалуйста, как захостить бота с нуля на сайте pythonanywhere?
![]()
Переходим на сайт https://www.pythonanywhere.com/ регистрируемся переходим на почту которую указали подтверждаем email нажав на ссылку убрав все галочки и нажав сохранить. Переходим обратно нажимаем files ->Browse files -> Upload a file загружаем файл .py бота. Переходим обратно на Dashboard New console -> $Bash появляется терминал с помощью команды pip установите необходимые библиотеки ( pip3 install —user telebot ). После вводим
python название_скрипта_который_загрузили.py всё бот запущен проверяем. Во вкладке Tasks можно запланировать запуск команды ежедневно. Для того чтобы бот работал без перерыва нужно купить платную подписку и добавить это во вкладке Tasks. Иначе бот будет отключатся.
![]()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.6.8.43486
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Загрузка телеграм бота на сервер. Подробные шаги загрузки файла *.py на бесплатный сервер PythonAnywhere

Самым сложным для меня, как для новичка, была загрузка телеграм бота на сервер, чтобы он начал полноценно работать. В этой статье хочу рассказать подробные шаги моего самого первого опыта. Для теста я выбрала бесплатный сервер.
Существует множество бесплатных виртуальных серверов для тестирования ботов. Вот некоторые из них:
-
— облачный хостинг для приложений Python. PythonAnywhere предоставляет бесплатный тарифный план, который позволяет развернуть одно приложение Python. — есть тестовый период на месяц. Отличное решение для начального теста, а после пролноценной работы. — платформа для развертывания и хостинга приложений, которая предоставляет бесплатный тарифный план. Он позволяет развернуть приложение на серверах Heroku и бесплатно запустить до 5 приложений. (AWS) — облачная платформа, которая предоставляет бесплатный тарифный план, включая Amazon EC2 (виртуальные серверы), Amazon S3 (хранилище данных) и другие сервисы. (GCP) — облачная платформа, которая также предоставляет бесплатный тарифный план, включая Google Compute Engine (виртуальные серверы) и другие сервисы. — облачная платформа, которая также предоставляет бесплатный тарифный план, включая виртуальные машины и другие сервисы.
PythonAnywhere
Для первого тестирования своего бота я выбрала PythonAnywhere. Регистрация интуитивно понятная.
Примечание: в бесплатном тарифе очень мало процесорных минут, так что этот тариф больше подходит для тестов, а не для полноценной работы. Для полноценной работа я рекомендую платные сервера https://zomro.com/
ШАГ 1. Начало работы. Установка виртуальной среды
1. Перейдите в Dashboard и запустите консоль. Для этого нажимаем New Console — $ Bash
2. Выполните следующую команду в консоли, чтобы установить инструмент virtualenv (инструмент для создания виртуальной среды):
Среда разработки
![]()
Для создания бота потребуется настроить нашу среду разработки и установить необходимые библиотеки и инструменты.
Что нам понадобится:
- Python 3 — среда разработки — библиотека для удобной работы с http — API обёртка для Twitter — встроенная библиотека для работы с json — встроенная библиотека для работы со временем
Перед началом работы над проектом, рекомендую создать виртуальную среду. Для этого будем использовать virtualenv . Она примечательна тем, что сохраняет настройки отдельно для каждого проекта. Это значит, что изменения, сделанные в одном проекте, не повлияют на другие.
Создадим директорию для бота:
Следующим шагом создаём саму виртуальную среду. Назовём её environment . При выборе названия учитывайте, что оно должно состоять из строчных букв, без пробелов и специальных символов.
Перейдём в директорию бота:
Активируем виртуальную среду:
Понять, что виртуальная среда запустилась, можно по тому, что в строке ввода в качестве префикса появится название созданной среды.
Теперь установим библиотеки. Создадим файл requirements.txt со списком компонентов, которые впоследствии установим командой pip install . В нашем случае, создадим новый файл в директории бота и сохраним его. Содержимое файла должно быть таким:
В командной строке наберите следующую команду для установки пакетов:
В выводе командной строки можно наблюдать процесс установки библиотек Tweepy и requests. Как только загрузка завершится, перейдём к следующему шагу создания нашего бота.
Создание бота
Код нашего бота будет разбит на две функции, каждая из которых выполняет отдельную задачу: первая подключается к API генератора случайных цитат, а вторая публикует твиты.
Создадим новый файл и назовём его twitter_bot.py . После, импортируем библиотеки, которые пригодятся в реализации функции.
Библиотека requests упрощает использование http в нашей программе. К слову, для работы с этим протоколом, она гораздо удобнее встроенной urllib .
Перед тем, как продолжить писать код, создадим RapidAPI аккаунт, чтобы получить api_key и api_url .
Перейдите на страницу Andrux API и нажмите на connect GET Endpoint для того чтобы мы могли использовать сервис для получения рандомных цитат.
Как сказано в документации RapidAPI, нужно создать словарь с названием headers , который содержит api_key и api_key .
Создание переменных для api_key и api_url :
В этом узле мы будем использовать библиотеку requests для взаимодействия с API.
Можно запустить код из терминала:
Так будет выглядеть ответ на запрос json:
Создадим нашу первую функцию и назовём её get_quote() . Она выглядит вот так:
Ответ response.get передаём в переменную response :
Ответ необходимо декодировать:
Результат выполнения функции будет отправлен в переменную с названием json .
Одна из особенностей Rest API состоит в том, что он возвращает большое количество данных, включая в себя и данные, которые не нужны. Однако, преимущество его в том, что он единожды обращается к серверу. Как только наши данные преобразованы в словарь, мы можем использовать этот метод для получения данных из словаря по ключу.
Мы написали почти половину кода для нашего бота. Теперь перейдём к созданию функции для публикации твитов.
Нужно зарегистрировать Twitter API для получения ключа.
Перейдите на apps.twitter.com и войдите в аккаунт. Затем нажмите на Create New App .
Нажмите на ‘Manage Keys and Access Tokens’, затем на Regenerate Consumer Key and Secret или на Regenerate My Access Token and Token Secret для того, чтобы увидеть информацию, которая не показана на странице.
Создайте следующие переменные в вашем коде:
Обратите внимание: нет ничего страшного в хранении персональных данных в теле программы, когда вы только начинаете программировать, но в дальнейшем лучше использовать переменные окружения для большей безопасности.
Следующим шагом мы импортируем Tweepy:
Для того, чтобы опубликовать запись в Twitter, используем метод update_status :
В нашем случае, аргументом функции будет значение, возвращённое функцией get_quote .
Нижеприведённые строчки кода должны быть в функции tweet_quote .
Наконец, мы можем вызвать функцию из тела программы:
Тестирование и развёртывание бота
Для тестирования корректности работы запустим программу из командной строки. Не забудьте удостовериться, что компьютер подключен к интернету. Бот работает, когда вы увидите Done в командной строке.
Активируйте виртуальную среду:
twitter_bot.py — название нашего скрипта. Вышеприведённая команда запустит скрипт и выведет id твита в командную строку.
Для развёртывания нашего бота создадим аккаунт в PythonAnywhere, сервисе, который позволяет развёртывать приложения на Python в облаке.
После входа вы попадёте на страницу Dashboard. Выберите вкладку файлы.
Бесплатно устанавливаем Python-ботов на хост

После появления в консоле значка «$», можете устанавливать библиотеки, которые необходимы для вашего бота, Python уже установлен изначально. В моём случае — это только telegrambotapi.
pip3 install telegrambotapi —user
Запускаем нужный нам файл, в моём случае — это «main.py» на третьем python.

Готово! Бот запущен!
Небольшое замечание: придётся перезапускать его примерно 1-2 раза в сутки.