Как установить discord py
Обновлено: 21.11.2024
Надежное хранение токенов и секретов приложений очень важно. В этом бонусном совете я покажу наиболее распространенные способы сделать это в Python.
Вы также должны быть уверены, что при использовании git игнорируете все файлы, в которых вы храните конфиденциальную информацию, из любого из этих примеров, чтобы избежать передачи их в систему управления версиями.
файлы .env и модуль python-dotenv
Один из самых стандартных способов хранения ваших секретных статических данных в программировании — файлы .env, и он используется не только для ботов Discord. Сохранить токен в файле .env очень просто.
Во-первых, вам нужен файл с именем .env, который вы можете использовать для хранения токена. Этот файл должен выглядеть следующим образом:
Это все, что есть в файле, но чтобы получить к нему доступ в Python, нам нужно проделать еще немного работы. Во-первых, нам нужно установить пакет python-dotenv, используя pip install python-dotenv (или, скорее всего, pip3, если вы работаете в Linux), который установит модуль. Теперь нам нужно импортировать модуль и загрузить файл:
Теперь, когда мы импортировали модуль и загрузили файл, нам нужно получить доступ к токену из него. Для этого нам нужно импортировать модуль os, чтобы мы могли получить доступ к переменным среды:
Вот оно! Теперь токен загружен и готов к использованию.
Импорт из файлов Python
Еще один метод, который вы можете использовать, — это импорт токена из файла Python. Это намного проще, чем загрузка из файла .env, поскольку не требует внешних модулей и представляет собой обычный импорт Python.
Предполагая, что у вас есть папка с именем private и в ней файл с именем config.py , вы можете просто использовать следующий код для импорта токена из нее:
Что предполагает, что config.py выглядит так:
Файлы конфигурации YAML и JSON
Последний распространенный метод — использование файлов YAML и JSON для хранения токена. Во-первых, я предполагаю, что у вас есть файл config.yml или config.json. Вы можете использовать любой из этих двух вариантов, просто загляните в раздел, соответствующий вашему типу.
Во-первых, файл ( config.yml ) должен выглядеть следующим образом:
Затем вам потребуется установить модуль pyyaml, который можно установить с помощью pip install pyyaml (или, скорее всего, pip3, если вы работаете в Linux), который установит модуль. Теперь нам нужно импортировать и загрузить данные из этого файла:
Для JSON это проще, чем для YAML, так как не требуются нестандартные модули, просто создайте файл ( config.json ), как показано ниже:
Далее нам просто нужно загрузить этот токен:
Что выбрать
Как правило, вам решать, что выбрать для своего проекта. У каждого есть свои преимущества и недостатки.
Я запустил python3 -m pip install -U discord.py, но установил только discord.py v0.16.x. Как установить новую версию discord.py rewrite v1.0?
Я удалил старый файл discord.py с помощью pip uninstall discord.py и повторно запустил pip, чтобы установить discord.py, только чтобы снова получить версию v0.16.x вместо новой версии v1.0.
18 ответов 18
Это должно перейти в ветку rewrite репозитория discord.py и получить файл яйца для установки.
Я знаю, что пошло не так: мне пришлось призвать ярла! pip install -U"yarl перед установкой новой версии раздора! Теперь все работает! Спасибо за помощь!
Если у вас все еще есть проблема, вы можете использовать:
Откройте командную строку и введите;
pip установить discord.py
pip install discord.py==1.0.1
и затем, если вы хотите сделать голос;
pip install discord.py[voice]
Если вы используете PyCharm, я думаю, вам следует использовать второй
По состоянию на 2021 год команда установки по умолчанию:
Будет установлена "переписанная" (>1.0) версия discord.py
Для обновления используйте команду update:
Если вы хотите перейти на самую последнюю версию, вы можете использовать:
Это не попытка ответить на вопрос. ОП ищет, как установить более новую версию пакета, чем версия, доступная через pip . Вы также заметите, что команда в вашем сообщении является синонимом команды, используемой OP в вопросе, только с дополнительным недостатком, заключающимся в неоднозначности того, к какому установочному пункту Python относится.
Легко, откройте командную строку и введите «pip install discord.py». Если вы это сделаете, вам, скорее всего, понадобятся «запросы на установку pip». Если команда pip не работает, откройте программу установки python и убедитесь, чтобы щелкнуть параметр «Добавить в переменные среды»! Это все, что вам нужно! Используйте Visual Studio Code или Atom, пока они лучшие из тех, что я использовал для своего бота!
Я считаю, что переписывание discord.py официально опубликовано на основании официальной информации на веб-сайте.
таким образом, команда для установки модуля станет довольно простой.
если вы хотите установить определенную версию. (самая новая на данный момент — 1.3.4)
если у вас есть проблема с pip, из-за которой cmd не может распознать вашу команду pip, сделайте следующее:
(но в любом случае сначала нужно получить пункт).
Судя по веб-сайту, discord.py отказывается от поддержки python 3.4, он поддерживает только python 3.5-3.8. Надеюсь, что эта информация может помочь. :-)
Откройте CMD и перейдите в папку вашего бота Discord, например:
Далее введите это в CMD: pip install discord.py Это должно работать
Нет необходимости переходить в какой-либо конкретный каталог. pip устанавливается глобально. Кроме того, в вопросе предлагается установить ветку перезаписи, вы не включили это в свой ответ
Теперь откройте и запустите его. Убедитесь, что вы добавили python в путь. Нажмите «Установить». После установки вы можете закрыть его.
После установки откройте его. Убедитесь, что выбран параметр Использовать git из командной строки Windows. Затем, нажав «Далее» на всем, нажмите «Установить».
После завершения установки нажмите "Готово".
Скопируйте адрес вашего скрипта. В моем случае это были Local//Programs//Python//Python39//Scripts
Откройте командную строку и введите cd Local//Programs//Python//Python39//Scripts . Вставьте туда свой адрес, мой вам не подойдет. Нажмите Enter.
Discord – это популярная платформа для обмена голосовыми и текстовыми сообщениями, используемая геймерами, сообществами разработчиков открытого кода, организаторами конференций и другими пользователями. Он приобрел популярность благодаря таким функциям, как превосходный голосовой чат, различные текстовые каналы и расширяемость с помощью автоматических помощников или «ботов».
В этом руководстве вы создадите бота Discord с помощью языка программирования Python и развернете его на сервере Ubuntu 20.04. Вы будете использовать библиотеку Discord Python, discord.py, для программирования своего бота.
Примечание: Discord имеет два разных названия для своих чатов/голосовых комнат. Они относятся к ним как к серверам, так и к гильдиям, в зависимости от того, где вы находитесь в документации. В этом уроке мы будем использовать термин «Гильдия». Просто знайте, что эти термины взаимозаменяемы и часто встречаются в официальной документации Discord.
Предпосылки
Для выполнения этого руководства вам потребуется:
-
с пользователем sudo без полномочий root и брандмауэром. Вы можете настроить это, следуя нашему руководству по начальной настройке сервера Ubuntu 20.04.
- Python3 установлен на вашем локальном компьютере. Чтобы получить конкретные инструкции, вы можете следовать одному из наших руководств по установке Python в Windows, Mac или Linux.
- Учетная запись Discord и гильдия Discord с правами администратора. Посетите страницу «Начало работы» Discord, чтобы получить приложение и бесплатную учетную запись. Затем создайте гильдию. Если вы создадите свою собственную гильдию Discord, у вас будут необходимые права для добавления бота.
- Любой текстовый редактор на ваш выбор, например Visual Studio Code, Atom, Sublime или Nano.
Шаг 1 — Создание пользователя-бота для вашей гильдии Discord
Прежде чем приступить к написанию кода, вам необходимо создать и зарегистрировать своего бота на портале разработчиков Discord.
Войдите на портал разработчика и нажмите кнопку "Новое приложение", чтобы начать процесс. Приложение Discord позволяет вам взаимодействовать с Discord API. Боты привязаны к приложениям; так они работают.
Далее добавьте имя для приложения в модальном окне и нажмите кнопку «Создать». В этом уроке мы назовем нашего SammySharkBot .
Discord создаст ваше приложение. Далее вы увидите страницу с информацией о вашем боте. Вы можете добавить изображение, которое будет служить значком для вашего бота. Нажмите кнопку «Выбрать аккуратный значок» в разделе «Значок приложения» на странице. Это не требуется.
Если вы загрузили значок, вы увидите диалоговое окно с предложением сохранить изменения. Нажмите Сохранить изменения, чтобы сохранить значок.
Теперь, когда вы настроили приложение, пришло время создать бота, связанного с приложением. Перейдите по ссылке Bot на панели навигации настроек в левой части экрана.
Теперь нажмите кнопку "Добавить бота", чтобы добавить бота в ваше приложение.
После того, как вы это сделаете, появится бот с необязательным значком, который вы настроили ранее. Запомните эту страницу; вам нужно будет вернуться к нему позже, чтобы получить токен API.
Вам будет предложено модальное окно с надписью Добавление пользователя-бота дает вашему приложению видимую жизнь в Discord. Однако это действие является безотзывным! Выбирать мудро. Идите вперед и нажмите Да, сделайте это! чтобы создать пользователя бота.
Далее перейдите к ссылке OAuth2 на панели навигации настроек в левой части экрана. Вам необходимо добавить соответствующие разрешения, чтобы ваш бот мог работать правильно.
Вам нужно будет добавить области, в которых может функционировать ваш бот. Отметьте опцию бота только потому, что это все, что вы хотите, чтобы этот бот делал. Дополнительные сведения о других областях см. в документации Discord OAuth2.
Теперь прокрутите вниз и предоставьте своему боту следующие разрешения: Просмотр каналов, Отправка сообщений, Чтение истории сообщений. Это даст вашему боту ограниченный набор действий, которые он может выполнять. Если вы хотите создать бота без ограничений, вы можете выбрать опцию «Администратор»; это не рекомендуется.
После того, как вы это сделаете, появится URL-адрес Discord, за которым следует кнопка «Копировать». Нажмите эту кнопку, чтобы скопировать ссылку и открыть ее в новом окне браузера.
Появится приглашение для вашего бота подключить вашу гильдию. У вас может быть разрешение на установку ботов в нескольких гильдиях, поэтому вы можете отметить здесь более одной гильдии. Выберите гильдию, в которую вы хотите установить бота, и нажмите Авторизовать.
Прежде чем бот будет добавлен в вашу гильдию, Discord покажет вам все разрешения, которые будут у него. Это гарантирует, что вы знаете, что вы устанавливаете. Если вы не хотите, чтобы у бота было определенное разрешение, вы можете снять его. Однако не делайте этого для этого бота, иначе он не будет работать. Нажмите «Авторизовать», чтобы принять и добавить бота в свою гильдию.
Вернитесь в свою гильдию и проверьте канал, на котором появляются сообщения о новых членах. Вы заметите, что ваш бот присоединился к вашей гильдии. Ваш бот также появится в списке участников с правой стороны, хотя бот будет отображаться в автономном режиме; это изменится после того, как вы запустите код бота.
Теперь, когда ваш бот добавлен в вашу гильдию, вы готовы воплотить его в жизнь с помощью некоторого кода Python.
Шаг 2. Создание виртуальной среды Python для вашего проекта
Прежде чем приступить к программированию, необходимо настроить среду разработки Python. На этом шаге вы установите и активируете требования Python в виртуальной среде, чтобы упростить управление.
Сначала создайте каталог в своем домашнем каталоге, который можно использовать для хранения всех ваших виртуальных сред:
Теперь создайте виртуальную среду с помощью Python:
Это создаст каталог с именем discord в вашем каталоге .venvs. Внутри он установит локальную версию Python и локальную версию pip. Вы можете использовать его для установки и настройки изолированной среды Python для вашего проекта.
Перед установкой требований Python для вашего проекта активируйте виртуальную среду:
Ваше приглашение должно измениться, чтобы показать, что вы сейчас работаете в виртуальной среде Python. Это будет выглядеть примерно так: (discord) пользователь @ хост :~$ .
При активной виртуальной среде установите discord.py с локальным экземпляром pip:
Примечание. После того, как вы активировали виртуальную среду (когда перед вашим приглашением стоит (discord), используйте pip вместо pip3 , даже если вы используете Python 3. Копия инструмента в виртуальной среде всегда называется pip , независимо от версии Python.
Теперь, когда у вас установлен пакет Discord, вам нужно сохранить это требование и его зависимости. Это хорошая практика, позволяющая воссоздать среду разработки по мере необходимости.
Используйте pip для сохранения информации о вашей среде в файл requirements.txt:
Теперь у вас есть библиотеки, необходимые для создания бота для разногласий.
Шаг 3. Создание минимального бота Discord
Теперь вы начнете кодировать своего бота Discord. После завершения ваш бот будет прослушивать определенные фразы, которыми поделились в текстовом чате, а затем соответствующим образом на них отреагирует. В частности, ваш бот будет подбрасывать монетку от имени пользователей.
На этом шаге вы создадите минимальную версию своего бота. Затем вы добавите дополнительные функции на шагах 4 и 5.
Для начала откройте файл с именем bot.py в предпочитаемом вами текстовом редакторе:
Теперь добавьте в файл следующие импорты: os , random и discord . Библиотека os позволит вам считывать ценную информацию, такую как токены API и название гильдии, из ваших переменных среды. Библиотека random позволит вам генерировать выходные данные для ваших случайных событий. А библиотека разногласий предоставит вам методы, объекты и декораторы, необходимые для взаимодействия с API разногласий. Код выглядит следующим образом:
Далее вам нужно будет получить токен Discord API и гильдию вашего бота из переменных среды. Вы будете использовать метод getenv из библиотеки os стандартной библиотеки Python. Добавьте в bot.py следующий код:
В версии 1.5 discord.py были введены намерения. Это было серьезным изменением по сравнению с предыдущими версиями библиотек Discord, которые позволяли ботам подписываться на определенные события, происходящие в гильдии. В этом руководстве вы установите доступные намерения клиента по умолчанию, но вам может потребоваться вернуться, если вы планируете взаимодействовать с намерениями GUILD_PRESENCES или GUILD_MEMBERS. Это намерения привилегированного шлюза.
Добавьте следующий код в bot.py, чтобы правильно настроить намерения:
Теперь давайте напишем код, реагирующий на событие в Discord. События — это действия, которые происходят в гильдии Discord, такие как отправка сообщения или присоединение к каналу. Полный список поддерживаемых событий см. в справочном API событий Discord.
Первый сегмент кода активируется по событию on_ready. Это событие срабатывает, когда ваш бот загружается в гильдию. Обратите внимание, что Discord API не гарантирует, что это событие произойдет только один раз. Если вы планируете поместить сюда код, который должен выполняться только один раз, сделайте несколько проверок, чтобы убедиться, что он действительно выполняется только один раз.
Вы напишете оператор печати, который будет напечатан, когда ваш бот успешно подключится к вашей гильдии. Боты Discord требуют использования асинхронных методов, чтобы бот находился в состоянии готовности и ждал вызовов.
Добавьте следующий код в конец bot.py:
Вы используете цикл for, чтобы найти свою гильдию среди всех доступных гильдий, а затем распечатываете информацию о гильдии и своем подключении к ней.
Наконец, вам нужно указать клиенту запускаться, когда скрипт выполняется с использованием вашего токена API. Добавьте следующую строку в bot.py, чтобы запустить бота:
На этом этапе ваш код должен выглядеть следующим образом:
Вы только что написали скелет кода, который позволит вашему боту подключиться к гильдии. Теперь вы протестируете основные функции своего бота.
Шаг 4. Локальное тестирование бота
Прежде чем писать код, убедитесь, что ваш бот может подключиться к Discord. Вернитесь на панель разработчика разногласий и нажмите ссылку «Бот» на панели навигации слева. Отсюда найдите токен под именем пользователя бота и нажмите кнопку «Копировать», чтобы скопировать токен в буфер обмена.
После того как вы скопировали токен, вернитесь к терминалу с активированной виртуальной средой. Экспортируйте токен Discord, чтобы он был доступен в переменных среды, чтобы ваш бот мог читать его при запуске:
Теперь вам нужно получить название гильдии, к которой присоединится ваш бот. Перейдите в свою гильдию Discord. Название гильдии должно быть в верхнем левом углу страницы вашей гильдии. Это имя вы выбрали при создании гильдии в разделе требований.
Теперь экспортируйте гильдию Discord, чтобы она была доступна в переменных среды, чтобы ваш бот мог читать ее при запуске:
Теперь, когда вы экспортировали необходимые переменные среды, вы готовы протестировать своего бота:
Запустите приложение:
Это может занять несколько секунд, но вы получите такой вывод. Обратите внимание, что номер и идентификатор вашего бота будут отличаться:
Вернитесь к своей гильдии Discord, и вы заметите, что у вашего бота теперь есть зеленый кружок рядом с его именем. Это означает, что бот находится в сети.
В терминале вы можете заметить, что ваш код не завершается. Это потому, что бот — это постоянно работающий процесс. Чтобы остановить бота в любой момент, нажмите комбинацию клавиш CTRL + C.
Шаг 5. Расширение бота Discord для выполнения случайных задач
Теперь, когда ваш бот заработал, пришло время расширить его функциональные возможности. Чтобы ваш бот отвечал на сообщения, отправленные в текстовом чате, вам нужно прослушать событие on_message.Эта функция принимает один аргумент, message , который содержит объект сообщения, включая различные атрибуты и методы ответа на сообщения.
Вам нужно убедиться, что ваш бот не отвечает сам себе. Если бы бот интерпретировал свое собственное сообщение как триггер, он создал бы бесконечный цикл. Чтобы избежать этого, убедитесь, что пользователь, отправляющий сообщение, не является ботом.
Добавьте следующий код в bot.py, чтобы объявить функцию on_message и проверить, кто отправил сообщение:
Наконец добавьте код, чтобы подбросить монетку. Вы также будете выполнять манипуляции со строками в содержимом сообщения в нижнем регистре (или в верхнем, если хотите), поэтому вам не придется беспокоиться о точном совпадении регистра в строках. Используйте функцию randint() в библиотеке случайных чисел Python для имитации подбрасывания монеты. Наконец, как только вы создали сообщение, вы отправите его на канал, используя метод отправки сообщения. Помните, что это асинхронное программирование, поэтому вам придется использовать ключевое слово await при отправке сообщения.
Добавьте следующий код в bot.py внутри функции on_message; это добавит функцию подбрасывания монеты:
Далее следует готовый код бота. Убедитесь, что ваш код выглядит так, или скопируйте и вставьте этот код:
Теперь, когда бот готов, пришло время его протестировать. Сохраните и закройте файл.
Теперь, когда вы убедились, что ваш бот работает, вы готовы развернуть его в рабочей среде на сервере Ubuntu 20.04.
Шаг 6 — Развертывание в Ubuntu 20.04
Вы можете оставить своего бота работающим с локального компьютера, но необходимость оставлять терминал активным или беспокоиться о перебоях в подаче электроэнергии может раздражать. Для удобства вы можете развернуть его на сервере.
Рекомендуется запускать бота от имени пользователя без полномочий root. В этом руководстве используется имя пользователя sammy.
Сначала скопируйте свой код и требования к библиотеке Python на сервер с помощью команды scp. Отправьте все в корневой каталог вашего пользователя:
Затем подключитесь к серверу по ssh:
Теперь вы будете вводить команды в терминал сервера.
Для запуска бота на сервере вам необходимо установить соответствующие системные пакеты Python.
Установите python3 , python3-venv и screen :
Теперь вы будете использовать инструмент screen для создания виртуального терминала. Без этого инструмента, если бы вы вышли из терминала во время работы бота, процесс завершился бы, и ваш бот отключился бы. С помощью этого инструмента вы можете подключаться к сеансам и отключаться от них, чтобы ваш код продолжал работать. Чтобы узнать больше о экране, ознакомьтесь с нашим руководством по установке и использованию экрана.
Чтобы начать сеанс экрана, используйте следующую команду:
Экран предложит вам лицензионное соглашение. Нажмите «Ввод», чтобы продолжить.
Теперь, когда у вас настроен виртуальный сеанс, вам нужно создать виртуальную среду Python для запуска вашего кода.
Сначала, как и раньше, создайте каталог для хранения ваших виртуальных сред:
Затем создайте новую виртуальную среду:
Активируйте виртуальную среду:
Далее установите необходимые библиотеки с помощью pip:
Прежде чем вы сможете запустить своего бота, вам необходимо экспортировать DISCORD_TOKEN и DISCORD_GUILD, чтобы ваш бот мог получить доступ к ключу API и информации о гильдии:
Наконец, запустите своего бота:
Ваш бот запустится и начнет принимать сообщения. Вы можете отключиться от сеанса экрана, используя комбинацию клавиш CTRL + A + D. Когда вы будете готовы повторно подключиться к сеансу, вы можете использовать эту экранную команду:
Вы успешно создали бота Discord с помощью Python. Приложение работает на сервере и реагирует на определенные фразы, которыми обмениваются в гильдии.
Заключение
В этом руководстве вы создали гильдию Discord, создали бота Discord, установили бота в своей гильдии и развернули бота на сервере Ubuntu 20.04. Вы только начали изучать Discord API. Боты мощные и расширяемые. Чтобы изучить другие возможности, ознакомьтесь с документацией API discord.py.
Кроме того, если вы хотите узнать больше о программировании на Python, посетите нашу серию руководств How To Code in Python 3.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Discord.py — очень мощный API. Он направлен на то, чтобы сделать создание ботов Discord невероятно простым, но при этом дать пользователю много возможностей. Люди создали игровых ботов, ролевых ботов, модерационных ботов, экономических ботов и многое другое! Carl-bot, Auttaja и многие другие боты используют discord.py. С помощью этого руководства вы сможете научиться им пользоваться.
Установка раздора.пи
Если у вас уже установлен Python, вам следует установить discord.py с помощью
Выйти из полноэкранного режима
Та-да! discord.py готов к использованию!
Вам нужно будет создать учетную запись для вашего бота. Руководство по этому поводу написано здесь.
Основы бота
При запуске и создании бота вам нужно решить, использовать ли discord.Client или commands.Bot .
- Легче, чем commands.Bot.
- Лучше всего, если вы не собираетесь использовать команды
- Обширная система команд
- Лучше всего, если у вашего бота будут команды
- Поддерживает большое количество кода, разбиваемого на "винтики".
- Поддерживает простое преобразование объектов разногласий.
В этом руководстве мы создадим бота с командами, поэтому мы будем использовать commands.Bot.
Выйти из полноэкранного режима
Мы только что инициализировали класс как объект. Это похоже на идею изобретения, а затем его создание. Мы определили этот класс для переменной bot, которую можно назвать как угодно. Большинство людей используют бота или клиента .
Теперь, когда наш бот определен, мы можем начать с первых команд. команды discord.py.Bot создает такие команды:
Выйти из полноэкранного режима
Выйти из полноэкранного режима
ctx — это контекст нашей команды, который содержит множество данных, которые можно использовать. У него также есть метод send, который позволит нам отправить сообщение на канал, в котором использовалась команда.
Теперь давайте произнесем имя пользователя команды! Для этого мы можем использовать ctx.author :
Выйти из полноэкранного режима
Теперь, когда мы приветствуем пользователя, он скажет Hello mikey 🌌!
Поздравляем! Вы только что написали бота с помощью discord.py! Запустите код, и ваш бот должен подключиться к сети! Когда вы наберете !hello , бот ответит!
Окончательный код:ПСССТ! Нужны ресурсы для веб-разработки? Ознакомьтесь с этой статьей @devlorenzo!
Читайте также: