Пишем Эхобота на python и запускаем его

Пишем свой собственный бот на python3.9. Запускаю его на домашнем сервере Debian10.
Этапы:

  • Установка python3.9
  • Запуск в среде env
  • Добавляем Эхо бота
  • Настраиваем сервис, что бы он запускался независимо

Установка python3.9

Устанавливаем зависимости:
sudo apt-get update | sudo apt-get upgrade
sudo apt install wget build-essential libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Скачиваем образ с официального сайта python, распаковываем и устанавливаем:
sudo wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
tar xvf Python-3.9.2.tgz
cd Python-3.9.2/
sudo ./configure --enable-optimizations
sudo make altinstall
python3.9 -V
pip3.9 -V

Запуск в среде env

Создаем папку для бота, и запускаем там виртуальную среду venv
mkdir tgBot
cd tgBot
pip3.9 install virtualenv
python3.9 -m virtualenv venv
ls -la venv/bin/
source venv/bin/activate
echo "aiogram==2.9.2" > requirements.txt
echo "asyncio" >> requirements.txt
pip install -r requirements.txt

Добавляем Эхо бота

Пишем простого эхо-бота
vim bot.py

#!/home/dmitry/tgBot/venv/bin/python
import logging
import config
import asyncio
from aiogram import Bot, Dispatcher, executor, types

#token
bot = Bot(token=config.API_TOKEN)
# disp for  bot
dp = Dispatcher(bot)
#vkl logging
logging.basicConfig(level=logging.INFO)

# hendler na komandy /test1
@dp.message_handler(commands="test1")
async def cmd_test1(message: types.Message):
    await message.reply("Test 1")

#  echo
@dp.message_handler()
async def echo(message: types.Message):
    await message.answer(message.text)

if __name__ =="__main__":
    #run bot
    executor.start_polling(dp, skip_updates=True)

Я добавил скрипт с конфигом что бы не палить некоторые настройки в частности токен бота и там еще будут другие конфиденциальные данные
vim config.py

API_TOKEN = '...' # bot token from @BotFather

Далее делаю эти файлы исполняемыми
sudo chmod +x *.py
Запускаю и проверяю бота
./bot.py

Добавить в сервис, что бы он запустился независимо

sudo vim /lib/systemd/system/tgBot.service

[Unit]
Description=Telegramm_bot Service
After=multi-user.target
Conflicts=getty@tty1.service
[Service]
Type=simple
ExecStart=/home/dmitry/tgBot/bot.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target

После добавления сервиса надо его перезапустить , включить запуск сервиса и запустить его. И проверить статус.
sudo systemctl daemon-reload
sudo systemctl status tgBot.service
sudo systemctl enable tgBot.service
sudo systemctl start tgBot.service
sudo systemctl status tgBot.service

На этом собственно все, наш эхо бот на python3.9 написан. Проверяем отвечает ли.

Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *