Самым сложным для меня, как для новичка, была загрузка телеграм бота на сервер, чтобы он начал полноценно работать. В этой статье хочу рассказать подробные шаги моего самого первого опыта. Для теста я выбрала бесплатный сервер.
Существует множество бесплатных виртуальных серверов для тестирования ботов. Вот некоторые из них:
- PythonAnywhere – облачный хостинг для приложений Python. PythonAnywhere предоставляет бесплатный тарифный план, который позволяет развернуть одно приложение Python.
- Kamatera – есть тестовый период на месяц. Отличное решение для начального теста, а после пролноценной работы.
- Heroku – платформа для развертывания и хостинга приложений, которая предоставляет бесплатный тарифный план. Он позволяет развернуть приложение на серверах Heroku и бесплатно запустить до 5 приложений.
- Amazon Web Services (AWS) – облачная платформа, которая предоставляет бесплатный тарифный план, включая Amazon EC2 (виртуальные серверы), Amazon S3 (хранилище данных) и другие сервисы.
- Google Cloud Platform (GCP) – облачная платформа, которая также предоставляет бесплатный тарифный план, включая Google Compute Engine (виртуальные серверы) и другие сервисы.
- Microsoft Azure – облачная платформа, которая также предоставляет бесплатный тарифный план, включая виртуальные машины и другие сервисы.
PythonAnywhere
Для первого тестирования своего бота я выбрала PythonAnywhere. Регистрация интуитивно понятная.
Примечание: в бесплатном тарифе очень мало процесорных минут, так что этот тариф больше подходит для тестов, а не для полноценной работы. Для полноценной работа я рекомендую платные сервера https://zomro.com/
ШАГ 1. Начало работы. Установка виртуальной среды
1. Перейдите в Dashboard и запустите консоль. Для этого нажимаем New Console – $ Bash
2. Выполните следующую команду в консоли, чтобы установить инструмент virtualenv (инструмент для создания виртуальной среды):
1 | pip3.8 install --user virtualenv |
3. Создайте виртуальную среду. По умолчанию, виртуальная среда создаётся в папке /home/ваше_имя_пользователя/. В этом случае у вас будет возможность установить необходимые пакеты и зависимости для каждого проекта в отдельности, не мешая друг другу. Также это упростит управление проектами, потому что все ваши проекты будут находиться в одном месте.
Эта команда создаст виртуальную среду с именем myenv, используя Python 3.8. Вы можете изменить имя и/или версию Python, заменив myenv и python3.8 соответственно.
1 | virtualenv --python=python3.8 myenv |
Или
1 | python3.8 -m venv myenv |
Данный скриншот показывает,что все прошло успешно.

После того, как виртуальная среда будет создана, ее нужно активировать, выполнив команду:
1 | source myenv/bin/activate |
Вы увидите что теперь Вы нахоитесь внутри виртуальной среды. Строка будет начинаться с имени вашей виртуельной среды.
ШАГ 2. Установка библиотек и загрузка телеграм бота на сервер.
Если вы используете бесплатный аккаунт, то доступ к SFTP в нем не доступен.
Поэтому Вам нужно будет обойтись только встроенным файловым менеджером PythonAnywhere.
Он находится по ссылке: https://www.pythonanywhere.com/user/your-username/files/
Если у Вас платный аккаут, тогда Вы можете подключится по SFTP к PythonAnywhere. Для этого Вы можете скачать и установить FileZilla и ввести следующую информацию:
- Имя хоста (Hostname) – это обычно указывается в формате
your-username.pythonanywhere.com. Вместоyour-usernameнужно указать свой логин на PythonAnywhere. - Имя пользователя (Username) – это также ваш логин на PythonAnywhere.
- Порт (Port) – по умолчанию используется порт 22.
- Пароль (Password) – это пароль от вашей учетной записи PythonAnywhere.
После этого создайте папку для вашего проекта, у меня это weatherbot и загузите в папку нужные файлы.
Все зависимые библиотеки я установила с файла requirements.txt, который просто создала в своем проекте на компьютере. Вот мои шаги для установки библиотек из файл requirements.txt.
Создаем файл requirements.txt
– Установка библиотеки pipreqs
1 | pip install pipreqs |
В папке проекта запустить
1 | pipreqs . --encoding=utf-8 |
Файл requirements.txt создан. Его тоже загрузите на сервер PythonAnywhere
Для установки нужных библиотек, перейдите в консоль (раздел “Consoles” в PythonAnywhere), и выполните следующую команду внутри активированной виртуальной среды:
1 | pip install -r requirements.txt |
Это установит все библиотеки, перечисленные в файле requirements.txt. Если в процессе установки возникнут ошибки, проверьте, что версии библиотек в вашем файле requirements.txt совместимы со средой Python на сервере.

ШАГ 3. Запуск проекта.
Все готова для запуска телеграм-бота на бесплатном сервере. Тут все просто.
Запускаем консоль.
В консоли поочереди набираем
1. Запуск виртуальной среды (где myenv – ваше имя виртуальной среды)
1 | source myenv/bin/activate |
2. Переходим в папку проекта (где folder_bot папка вашего бота)
1 | cd folder_bot |
3. Запуск файла бота (где main.py файл вашего бота)
1 | python3 main.py |
Иииииииии……если Вы на бесплатном тарифе у Вас может быть ошибка:
1 | Aiohttp client throws an error: ClientConnectorError: Cannot connect to host api.telegram.org:443 ssl:default |
Чтобы не было этой ошибки в рамках бесплатного тарифа нужно в код вашего бота добавить следующее:
1 2 3 4 | PROXY_URL = "http://proxy.server:3128" ### в строку инициализации бота добавить прокси proxy=PROXY_URL bot = Bot(token=tg_bot_token, proxy=PROXY_URL) |
После того как вы внесли изменения в файл бота, его снова нужно загрузить на сервер, вместо предыдущего и повторить шаги 1-3 для запуска бота.
Вот теперь действиетльно все!
Ваш бот работает!!!!
