discord.py README

The project's README from github.com/Rapptz/discord.py. As one markdown file: README.md.

discord.py

.. image:: https://discord.com/api/guilds/336642139381301249/embed.png :target: https://discord.gg/r3sSKJJ :alt: Discord server invite .. image:: https://img.shields.io/pypi/v/discord.py.svg :target: https://pypi.python.org/pypi/discord.py :alt: PyPI version info .. image:: https://img.shields.io/pypi/pyversions/discord.py.svg :target: https://pypi.python.org/pypi/discord.py :alt: PyPI supported Python versions

A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python.

Key Features

Installing

Python 3.8 or higher is required

To install the library without full voice support, you can just run the following command:

.. note::

A `Virtual Environment <https://docs.python.org/3/library/venv.html>`__ is recommended to install
the library, especially on Linux where the system Python is externally managed and restricts which
packages you can install on it.

.. code:: sh

# Linux/macOS
python3 -m pip install -U discord.py

# Windows
py -3 -m pip install -U discord.py

Otherwise to get voice support you should run the following command:

.. code:: sh

# Linux/macOS
python3 -m pip install -U "discord.py[voice]"

# Windows
py -3 -m pip install -U discord.py[voice]

To install the development version, do the following:

.. code:: sh

$ git clone https://github.com/Rapptz/discord.py
$ cd discord.py
$ python3 -m pip install -U .[voice]

Optional Packages


* `PyNaCl <https://pypi.org/project/PyNaCl/>`__ (for voice support)

Please note that when installing voice support on Linux, you must install the following packages via your favourite package manager (e.g. ``apt``, ``dnf``, etc) before running the above commands:

* libffi-dev (or ``libffi-devel`` on some systems)
* python-dev (e.g. ``python3.8-dev`` for Python 3.8)

Quick Example
--------------

.. code:: py

    import discord

    class MyClient(discord.Client):
        async def on_ready(self):
            print('Logged on as', self.user)

        async def on_message(self, message):
            # don't respond to ourselves
            if message.author == self.user:
                return

            if message.content == 'ping':
                await message.channel.send('pong')

    intents = discord.Intents.default()
    intents.message_content = True
    client = MyClient(intents=intents)
    client.run('token')

Bot Example
~~~~~~~~~~~~~

.. code:: py

    import discord
    from discord.ext import commands

    intents = discord.Intents.default()
    intents.message_content = True
    bot = commands.Bot(command_prefix='>', intents=intents)

    @bot.command()
    async def ping(ctx):
        await ctx.send('pong')

    bot.run('token')

You can find more examples in the examples directory.

Links
------

- `Documentation <https://discordpy.readthedocs.io/en/latest/index.html>`_
- `Official Discord Server <https://discord.gg/r3sSKJJ>`_
- `Discord API <https://discord.gg/discord-api>`_

discord.py (Rapptz/discord.py)

Searching Database…

Что это такое?Библиотека на Python для работы с Discord API: вы пишете своего бота на Python, а discord.py берёт на себя всё низкоуровневое общение с API.
Так это программа, которую я запускаю, или код, который я добавляю в свой проект?Это библиотека, а не отдельное приложение: вы устанавливаете её с PyPI и импортируете в собственном скрипте на Python, где вы определяете и запускаете бота.
Что мне нужно иметь, прежде чем пользоваться ей?Python 3.8 или новее и токен Discord-бота, который вы передаёте в bot.run(). Никакая база данных или отдельный сервис не нужны.
Есть ли что-то необычное в написании бота с её помощью?Библиотека изначально асинхронная: команды и обработчики событий пишутся как async/await-корутины, а не обычные функции, поэтому базовое понимание асинхронного Python не помешает.
Как выглядит самый простой бот?В quickstart бот создаётся с интентами, команда регистрируется через декоратор @bot.command() — это команда ping, которая отвечает 'pong', — и всё запускается через bot.run('token').
Она сама справляется с рейт-лимитами Discord?Да. Правильная обработка рейт-лимитов указана среди её ключевых возможностей, так что библиотека автоматически следит, чтобы бот не выходил за лимиты API.
Мне нужен мощный сервер, чтобы запускать бота?Нет. Оптимизация по скорости и по памяти заявлена среди ключевых возможностей библиотеки, а простой бот — это просто небольшой скрипт на Python.
Creator
Rapptz
Size
22.5 MB
Stars
16.2K
Updated
CommitSep 01
Age
11y
Commits · 90 Days