소개

이 문서는 디스코드 API를 이용한 애플리케이션을 생성하는 데 도움을 주는 discord.py의 문서입니다.

요구 조건

discord.py는 Python 3.5.3 버전 이상에서 동작합니다. 그 이하 혹은 Python 2.7 이하에서는 지원되지 않습니다. Python 3.4 이하에서는 discord.py에 필요한 (aiohttp)가 지원되지 않습니다.

설치

PyPI에서 이 라이브러리를 바로 가져올 수 있습니다:

python3 -m pip install -U discord.py

만약 윈도우를 사용하신다면, 다음의 코드를 사용하셔야 합니다:

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

음성 기능을 사용하기 위해서는 discord.py 대신 discord.py[voice] 를 사용하셔야 합니다. 예를 들어:

python3 -m pip install -U discord.py[voice]

리눅스 환경에서 음성 기능을 사용하기 위해서는 아래의 모듈들이 필요합니다:

데비안 기반 시스템에서는 다음 명령어로 필요한 모듈들을 설치할 수 있습니다:

$ apt install libffi-dev libnacl-dev python3-dev

시스템 권한을 가졌는지 확인하세요!

가상 환경

Sometimes you want to keep libraries from polluting system installs or use a different version of libraries than the ones installed on the system. You might also not have permissions to install libraries system-wide. For this purpose, the standard library as of Python 3.3 comes with a concept called 《Virtual Environment》s to help maintain these separate versions.

가상 환경 및 패키지 에서 더 많은 정보를 확인하세요.

다만 빠르게 진행하고 싶다면:

  1. 당신의 프로젝트 폴더로 가세요:

    $ cd your-bot-source
    $ python3 -m venv bot-env
    
  2. 가상 환경을 활성화하세요:

    $ source bot-env/bin/activate
    

    윈도우에서 활성화하시려면:

    $ bot-env\Scripts\activate.bat
    
  3. 평소와 같이 pip를 이용하세요:

    $ pip install -U discord.py
    

축하합니다. 이제 가상 환경 설정을 모두 끝냈습니다.

기본 개념

discord.py는 events 개념을 중심으로 진행됩니다. 이벤트는 봇이 감지하고 응답하는 것입니다. 예를 들어, 메시지가 발생하면 이벤트가 수신됩니다.

이벤트의 작동 방법을 보여주는 예:

import discord

class MyClient(discord.Client):
    async def on_ready(self):
        print('Logged on as {0}!'.format(self.user))

    async def on_message(self, message):
        print('Message from {0.author}: {0.content}'.format(message))

client = MyClient()
client.run('my token goes here')