Edited at

discordpyのrewrite/asyncとは何なのか

※ 2019/04/09のrewrite版正式リリースに伴い内容を修正しました。

discord.py を知らない方はこちらをお読みください。

Pythonで実用Discord Bot(discord.py解説)


要は

新バージョンが rewrite

旧バージョンが async

互換性はありません。

python2系/3系と同様の問題と考えてください。

呼称はGithubリポジトリのブランチ名が由来

- https://github.com/Rapptz/discord.py/tree/rewrite

- https://github.com/Rapptz/discord.py/tree/async


rewrite版 について



  • ドキュメント(英語) / 日本語版(翻訳中)

  • 別称 v1.0.0

  • 2019/04/09 にリリース


    • 過去ではgithubからのみインストール可能だった




  • pip install discord.py でインストール

  • python3.7に対応

  • 現在解説している記事は少ない


githubからのインストール方法

pip install git+https://github.com/Rapptz/discord.py.git@rewrite#egg=discord.py[voice]



async版 について


  • ドキュメント(英語)

  • 別称 v0.16.12 or 旧版

  • 2019/04/08 まで pip install discord.py でインストールできたもの


  • python3.7 では動かない


    • 3.4.2 から 3.6.* で動く



  • 現在殆どの記事で解説されているのがこのバージョン

  • 最終更新日 2017/11/13


rewrite版とasync版の仕様変更点

目立つところでは、チャンネルへのメッセージ送信の構文が変更されており、

以下のような違いがあります。


rewrite版の構文

await channel.send('Hi!')



async版の構文

await client.send_message(channel, 'Hi!')


その他詳細は公式ドキュメントに記載されています。

v1.0への移行


後書き

現在多くの記事は discord.py の async版 を扱っており、

現行版の rewrite版 に対応していません。

そのため混乱が多く、理解を得るための記事が必要と考え執筆しました。

以後説明が面倒な際はこちらの記事を投げてください。