1 Востаннє редагувалося pluszz (29.06.2020 16:26:15)

Тема: Установка бібліотеки discord.py

Напевно всі чули про сервіс Discord, і про те що в ньому як і в телеграм є можливість створювати чат ботів.
Так, як ботописний жанр є одним з моїх улюблених, то я не міг обминути цю фішку.
Тут я не буду описувати як написати бота інтернети засипані прикладами і мануалами. Більшість таких мануалів радять використовувати бібліотеку discord.py але не пояснюють, як її встановити, максимум пишуть що треба використовувати python-3.5.3. Хоча насправді discord.py вимагає щоб версія python була вищою від 3.4 і нищою від 3.7
Але навіть в консервативному debian, на момент написання цих рядків, використовується python -3.7.3.
Напевно є безліч варіантів вирішити цю проблему, але особисто мені припав до душі спосіб з використанням pyenv, це система керування версіями python котра доступа для linux, unix, osX а також тестова версія для віндовс. Всі дії котрі буду описувати стосуються Debian та скоріш за все підійдуть для ubuntu, однак по ссилках котрі приведені тут можна знайти рецепти і для інших ос.

Установка pyenv:
Спочатку треба установити залежності. Для цього можна скористатися таким рецептиком:

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

Потім як рекомендують розумні люди можемо скористатись з pyenv-installer

 curl https://pyenv.run | bash

Далі прописуємо в ~/.bashrc

export PYENV_ROOT="${HOME}/.pyenv"

if [ -d "${PYENV_ROOT}" ]; then
    export PATH="${PYENV_ROOT}/bin:${PATH}"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

Зберігаємося і вбиваємо в термінал

source ~/.profile

Провіряємо що получилося

pyenv -v

Якщо вам вивело версію pyenv то все пройшло добре. І ми можемо встановити собі на машину кілька версій python та переключатись між ними.

Установка python 3.5.3 та створення віртуального оточення:

Хоча теоретично discord.py повинен працювати і з python -3.6 я вирішив що немає часу провіряти і встановив рекомендовану 3.5.3

pyenv install 3.5.3

Якщо ви користуючись python ще не завели звички створювати віртуальні оточення для кожного проекту, то дуже рекомендую. Pyenv має дуже зручні інструменти для створення та керування віртуальними оточеннями python.
Для створення оточення виконуємо

pyenv virtualenv <python_version> <environment_name>

в нашому випадку

pyenv virtualenv 3.5.3 discord_bot

Pyenv на відміну від venv створює каталог віртуального середовища не в поточній папці а в ~/.pyenv/versions/, і активувати віртуальне середовище теж дуже просто.

pyenv local discord_bot

Установка discord.py

pip3 install discord.py

Всім бажаючим вдалого ботобудування.

Подякували: dot, koala, 0xDADA11C7, leofun014