1. 굳이 가상환경을 쓰는 이유
가상환경을 만드는 이유는... 처음 시도에 마법처럼 잘 설치되고 오류없이 짠! 하고 구동되기에는 힘들기 때문입니다.
뭐, 파이썬이 %AppData%Local에 설치되어 있어서 pip 경로가 엄청나게 길다던지... 하는 경우엔 라이브러리 설치하려면 밑도 끝도 없습니다. (윈도우는 경로가 좀 거지같아요. 특정 사용자용 패키지를 왜 Appdata까지 내려가서 설치하는겁니까? 이해가 안돼 증말)
또 하나 더. 굳이 내 컴퓨터의 어딘가에 설치될 파일들이 좀 찝찝하지 않나요? 일일이 찾아서 지워야 하는데. 그리고 다른 프로젝트를 진행할 때도 전에 설치되었던 (잘못 설치되어있을지도 모를) 라이브러리, 특히 구버전인 경우에는 더하죠. 그냥 디스코드봇만을 위한 가상환경을 만들어서 이것저것 설치해보고, 잘못되면 가상환경 다시 만들고. 롤백이 편리합니다.
2. 가상환경으로 새 프로젝트 만들기
그러기 위해선 PyCharm을 쓸겁니다. 대표적인 파이썬 IDE인데요. 환경을 다양하게 설정할 수 있고, 파일/버전 관리에도 유리해요. 설치된걸 전제로 시작하겠습니다.
Create New Project
Location은 이제부터 쓸 워크스페이스입니다. 디코봇만 유일하게 쓸만한 폴더 하나를 지정해주세요.
그 아래는 새 환경을 쓸건지, 아니면 컴퓨터에 있는 파이썬을 쓸건지 물어보는 겁니다.
New environment에서는 워크스페이스 아래 venv 폴더에 새 환경을 만듭니다.
저대로 설정해봅시다.
파일 하나 만들어서 실행해봅시다. 아마 실행이 안될겁니다.
우측 상단의 Add Configuration을 선택하고, 아까 만든 새 환경을 파일과 연결시켜 봅시다.
복잡해보이지만, 수정해줄건 딱 세 개 있습니다.
1. Name | 2. Script path | 3. Python interpreter
2번에서 아까 만든 파이썬 파일을 찾고 3번에서 아까 만든 새 환경이 잘 적용되었는지 판단 후 OK 하시면 됩니다.
3. 라이브러리 추가하기
File > Settings > Project:Name > Project Interpreter 에 들어가면, 아까 만든 가상 환경에 설치되어있는 라이브러리 목록이 나옵니다. 옆의 + 버튼으로 discord와 asyncio를 추가해주면 됩니다. (하단의 install package)
보니까 뭐가 많이 생겼어요.
4. 샘플봇 실행하기
이제 파이썬 파일에다가 다음과 같이 입력해줍시다.
import discord
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$hello'):
await message.channel.send('hello!')
client.run('your token here')
https://discordpy.readthedocs.io/en/latest/index.html
여기서 가져온 예시 코드입니다.
특히 your token here에 토큰을 붙여넣기 해야되는데, 디스코드 개발자 페이지로 돌아가서 중간의 Token을 복사해야 합니다.
저기 버튼 하나 보이죠? 물론 유출되면 안됩니다. Bot의 고유 식별부호이기 때문이죠.
그리고 실행시켜보면,
온라인으로 뜨면서
$hello라 입력하면 hello!로 답장하는걸 볼 수 있습니다.
태그된 시리즈 바로가기 ↓↓
https://ghlabnote.tistory.com/tag/디스코드봇
https://ghlabnote.tistory.com/tag/파이썬%20문법
'프로젝트 > 설명' 카테고리의 다른 글
디스코드봇 5. 코드의 원리 파악하기 (2) 데코레이터 (0) | 2020.12.20 |
---|---|
CSS 핵심 내용 정리 (0) | 2020.12.17 |
디스코드봇 4. 코드의 원리 파악하기 (1) 비동기 처리 (0) | 2020.12.01 |
디스코드봇 2. 시작을 위한 환경설정 (0) | 2020.11.28 |
디스코드봇 1. 개요 (0) | 2020.11.28 |