(2019/04/09)discord.pyが正式リリースされました。
(※rewrite版と呼ばれていたものがdiscord.pyになりました)
PythonでDiscordボットを作る時に引っかかりやすい罠や、Discordのpythonjpでよくやり取りされる質問、ネットでの参考になる記事等をゆるくまとめていこうと思います。
初心者が対象です。
※注意
PythonやDiscordは活発に更新されていきます。情報がどんどん古くなっていきます。ここに書かれている情報が古くなっている可能性もありますので注意してください。
全般
Q: ボット作成の大まかな流れを知りたいんだけど?
A: PythonでDiscordのボットサンプルを作成(rewrite版)
A: Pythonで簡単なDiscord Botの作り方(async版)
A: discord.pyとherokuでDiscordBot
A: 【VOICEROID解説】Python環境でDiscord Botを作る。 Part1 前準備編 discord.py rewrite 修正版
https://www.youtube.com/watch?v=31HPbI2LPc4
(discord.pyのrewrite版を使う場合、Pythonは3.7.? 以降を導入してください)
(discord.pyのasync版を使う場合、Pythonは3.6.? を導入してください)
開発環境
Q: 開発環境は何をインストールしたらいいの?
A: 好きなエディタとかIDEで構いません。PyCharmとかVSCodeが多数派かな。
(☓Windowsのメモ帳はダメです。BOM付きUTF-8という形式で保存されてしまう為 → 「Windows 10 19H1」で改善の予定があります)
PyCharm:
https://www.jetbrains.com/pycharm/
VSCode:
https://code.visualstudio.com/
Python
Q: Pythonの何から学べばいいの?チュートリアルないの?
A: https://docs.python.org/ja/3/tutorial/index.html
Q: python3.7でボット作ったのに動かないんだけど?
A: discord.pyのasync/rewriteとは何なのか
A: http://nao-y.hatenablog.com/entry/2018/08/22/202616
Q: コルーチンって何なの?
A: https://ekulabo.com/whats-coroutine#outline__2
(↑ Unityの中での説明ですが分かりやすいです)
Q: asyncとかawaitって何なの?
https://qiita.com/matsui-k20xx/items/4d1c00c4eefd60ba635b
(↑ リンク先にさらにリンクがあります)
(asyncやawaitはボットを作る上で頻出しますので大事ですよー)
pip
Q: 仮想環境内でpipでパッケージをインストールしたのに認識されない!
A: Pythonが複数インストールされている環境では、pipコマンドを直接使うとかならず事故が発生します。
python -m pip install
を使用してください。
Bot commands framework
Q: コード内にcommands.Botとか書いてあるけどこれ何なの?
A: https://starnak.hatenablog.com/#Bot-commands-framework%E3%81%A8%E3%81%AF
Discord
discord.py
Q: async版とかrewrite版って何なの?
A: https://qiita.com/1ntegrale9/items/f4c47a6a69ecf23fc5db
※(2019/03/03時点)いま、ゼロから覚えるのならば新しい方であるrewrite版をオススメします。(ネットでの情報は少ないですが)
async版はDiscordのカテゴリー関連の機能が貧弱だからです。
Heroku
Q: ボットを24時間無料で動かしたいんだけど?
A: Herokuという所で動かすことができます
・Herokuの無料プラン、クレカ登録無し → 550時間まで(一ヶ月は無理です。31日*24時間=744時間だから)
・Herokuの無料プラン、クレカ登録有り → 550時間+450時間=1000時間(一ヶ月連続稼働OK)
(条件がコロコロ変わるみたいなので公式サイトで確認してください)
Q: Herokuでデプロイ成功したのに動かないんだけど?
A: Herokuの管理画面「Resources」→ 自分のアプリの右側のスイッチがONになってるか確認してください。(初めて使う場合はOFFになってます)
その他
Q: コード書いたけどエラー出て全然動かん!助けて!
A: Discord の Python.jpサーバで質問することできますよ。
Discord Python.jpサーバに参加
https://www.python.jp/pages/pythonjp_discord.html
(入ったら「必ずお読みください」を一読してくださいね。質問の仕方が載ってます)
リンク
Discord Python.jpサーバに参加
https://www.python.jp/pages/pythonjp_discord.html
Shun Tannai (PythonでDiscordボットを作る時に大変参考になりました)
https://qiita.com/1ntegrale9
Python 3.7.2 ドキュメント
https://docs.python.org/ja/3/
discord.py rewrite版 API Reference
https://discordpy.readthedocs.io/en/rewrite/api.html
heroku
https://jp.heroku.com/