[python] 디스코드 봇 만들기(2)_macOS discord.py 설치

련지·2024년 7월 16일

Discord

목록 보기
2/2

지난 글에서 봇 계정을 만들었다.
이제 이 봇이 작동하게 코드를 짜보자!

vscode python extension 설치

python을 쓸 건데 파이참도 안 깔려 있고 해서 이미 있는 vscode에 python extension을 설치해서 썼다.


bot 실행 파일 생성

이제 아무 경로에다가 새 파일을 하나 만들어준다.
노란 박스 아이콘을 클릭하면 만들 수 있다.
이름도 아무거나 상관 없고, 나는 studyBot.py로 했다.

import discord

TOKEN = '봇의 토큰을 여기에 넣는다'

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(TOKEN)

discord.py 설치

그런데 아마 이 코드를 작성하면 이렇게 에러가 뜰 것이다.

discord가 없단다!
깔아주면 된다.
...
나는 이 discord를 까는 과정에서 정말... 정말 정말 너무 힘들었다...
하지만 해결했다!

pip install discord

원래 이 명령어를 치면 된다고들 그런다.(난 안 됐다는 뜻이다.)
내가 해결한 방법은 이렇다.

pip install discord

pip3가 pip 상위 호환이라고 하는데 나는 pip는 없고 pip3만 있어서 에러가 난 것이다.
pip3으로 해준다.

pip install discord

헉 뭐야 이 엄청난 에러들!
당황할 수 있지만 언제나 에러들은 뜯어 보면 설명도 잘 해주고 해결법도 같이 알려준다.

설명

현재 사용 중인 Python 환경이 외부에서 관리되고 있어 시스템 전역에 Python 패키지를 설치할 수 없다.

고 합니다.

해결법

pipx설치해서 해봐도 안되고 --user를 붙여봐도 해결이 안됐다.

그런데 에러문 가운데쯤 보면 코드가 세 줄 있다.
가상 환경을 만들어서 쓰라는 얘기고, 결국 이걸로 해결했다.
아래 코드를 한 줄씩 입력해준다.

python3 -m venv myenv
source myenv/bin/activate
pip install discord

간단하게 설명하자면 가상 환경을 만든다 → 가상 환경을 활성화 한다 → 그 가상 환경에서 discord.py를 설치한다

중간에 에러 난 거는 pip 업그레이드 하라고 해서 pip install --upgrade pip 하고 다시 했더니 해결됐다.

discord가 정상적으로 import 된다!


토큰 가져오기

코드 3번 라인에 토큰 관련 내용이 있다.
저번에 봇 계정 만들었던 이 사이트에 다시 들어가자.

사진이랑 이름도 바꿔줄 수 있어서 바꿔줬다 ㅎㅎ
가운데 Reset Token 클릭, Yes, do it! 클릭, 비밀번호 입력 해주면 토큰이 재발급 된다.


노란색에 토큰이 있을 것이다!
잘 저장해주고, 하단에 Save Changes도 꼭꼭 눌러주자.
이 토큰을 코드 3번 라인 따옴표 안에 넣어주면 된다.

그리고 실행 버튼을 눌러주면 ....!

SSL 에러가 난다

에러 난 터미널을 실수로 밀어버려서 캡쳐본이 없는데, 마지막 라인이 aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host discord.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')] 이런 식으로 끝난다.
SSL이라니까 인증서 오류고... 맥에서 자주 난단다.(또 맥이다)
VSCode 터미널 말고 그냥 터미널을 켜서 하나만 실행시켜주면 해결된다.

1. Applications 폴더 안에 Python 폴더가 있다. 들어가자.
2. sudo ./Install\ Certificates.command를 입력한다.
3. 비밀번호를 입력한다.
4. VSCode에서 다시 코드를 실행시켜보자.


잘 실행되고, Discord에 들어가보면 우리의 봇쨩이 온라인 상태가 되었다!!

profile
기술 블로그도 재미있을 수 있잖아요

0개의 댓글