Skip to content

Установка бота в деталях

Pavel Shakhov edited this page Oct 19, 2021 · 2 revisions

В этой статье более-менее детально рассказано про установку бота с нуля в Windows и Linux.

Установка софта

1. Подготовка

Linux

Обновим и установим кое-какие базовые пакеты:

$ apt-get update && apt-get dist-upgrade -y
$ apt-get install nano -y
$ apt-get install sudo -y

Windows

На мой взгляд, разработчик обязательно должен использовать chocolatey — это пакетный менеджер для виндовс. Он позволяет автоматически устанавливать и обновлять софт. Затем ставим Git и удобную консоль ConEmu. Там же можно поставить и питон, но он поставит свежую версию, а нам нужна старая 3.6, поэтому ее ставим отдельно.

2. Python 3.7

В принципе, можно и 3.6 использовать. Более свежие версии не проверял.

Linux

Питон мы будем компилировать из исходников. Поэтому сперва поставим пакеты, необходимые для компиляции:

$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev
$ sudo apt-get install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
$ sudo apt-get install -y libncurses5-dev  libncursesw5-dev xz-utils tk-dev
$ sudo apt-get install libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev -y
$ sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev

Теперь качаем и компилируем питон:

$ cd /home/
$ wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz
$ tar xvf Python-3.7.12.tgz
$ cd Python-3.7.12
$ ./configure --enable-optimizations
$ make -j8
$ sudo make altinstall
$ python3.7 --version

Ура, теперь он работает через команду python3.7.

Источники информации: 1, 2.

Windows

Качаем и устанавливаем официальный инсталлятор. Т.к. это старая версия, то рекомендую не включать ее в PATH. Вместо этого в директории, включенной в PATH, создать файл python36.cmd с содержимым:

C:\python36\python.exe %*

И все запускать уже через python36.

В качестве редактора кода можно использовать что угодно. Например, бесплатную PyCharm Community.

3. Redis

Используется для кеша. Используем версию 3.2, но версии новее, по идее, тоже должны работать.

В качестве админки редиса я использую RedisDesktopManager.

Linux

Инструкция по установке. Настройки редиса не меняйте, оставляйте какие есть.

Windows

Я использую Open Server Panel — там есть и редис, и mysql. Достаточно включить его в настройке модулей.

4. MySQL

Для работы с базами я использую HeidiSQL.

Linux

$ sudo apt-get install mysql-server
$ sudo mysql_secure_installation

Скорее всего, установится MariaDB. Не забудьте изменить настройки бд для поддержки utf8mb4 (добавить их в конец /etc/mysql/my.cnf). И перезапустить бд: service mysql restart.

В HeidiSQL я подключаюсь к базе через SSH. Но у меня не получалось подключиться рутом. Для простоты можно создать второго рута, подключиться им и через него создавать бд.

Windows

Я использую Open Server Panel. Для него я не меняю настройки кодировок ("и так сойдет").

Установка бота

Команды для линукса и виндовс мало чем отличаются. Клонируем репозиторий:

$ git clone https://github.com/pongo/rapturebot.git

Затем заходим в папку и устанавливаем виртуальную среду питона:

root:~$ python3.7 -m venv venv
root:~$ source ./venv/bin/activate
(venv) root:~$ pip install --upgrade pip
(venv) root:~$ deactivate
root:~$ 

То есть вы сперва входите в среду через activate, выполняете команды, а затем выходите через deactivate.

Устанавливаем пакеты бота:

(venv) root:~$ pip3 install -r requirements.txt
(venv) root:~$ pip install ujson

Здесь же заодно можно установить pymorphy2, который может использоваться ботом для морфологического разбора (в данный момент не используется):

(venv) root:~$ pip install pymorphy2[fast]
(venv) root:~$ pip install -U pymorphy2-dicts-ru

Возможно, пользователи Windows не смогут скомпилировать оптимизированную версию. Тогда нужно ставить обычную: pip install pymorphy2.

Настройка

Подробно написано в CONFIG.md.

Запуск

Запускаем тоже из под виртуальной среды.

(venv) root:~$ python main.py
Bot started

Если же используется какой-нибудь PyCharm, то можно запускать через него.