Пишем свой собственный бот на 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
Создаем папку для бота, и запускаем там виртуальную среду venvmkdir 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 написан. Проверяем отвечает ли.