DiscordのBotがなぜか動かなかった(discord.py)

数日前(火曜日くらい)から、discord.pyで自作したBotが動かない。テキスト系の機能は生きているものの、ボイス系がアウト。自作ではないMusicBotもおかしくなっていたので、discord.py周りを疑ってみた。

最新版から、過去のバージョンいろいろを試してもだめだったが、discord.pyを開発版でインストールしたらとりあえず動いた。APIの変更でもあったのだろうか。

discord.pyの開発版をインストール

追記: このときは開発版を使うしかなかったけど、今はdiscord.py のバージョンを1.2.4にすればとりあえず解決します。

discord.pyのREADMEによると、開発版は以下の手順でインストールできるらしい。

To install the development version, do the following:

https://github.com/Rapptz/discord.py
$ git clone https://github.com/Rapptz/discord.py
$ cd discord.py
$ python3 -m pip install -U .[voice]

これであっけなく解決してしまった。

自分の場合は、Dockerを使用してBot用の環境を作っているので、Dockerfileの末尾に以下を書いた。末尾に書けば、そこまでのdockerのビルドはキャッシュできるし、開発版を使わなくて良くなったときにすべてビルドし直す必要もない。

gitが使える必要があるのと、権限がないといけないので、セキュリティとかコンテナのサイズとかをちゃんとしてる人には使えない手かもしれない。

# use develop version of discord.py
RUN git clone https://github.com/Rapptz/discord.py && \
    cd discord.py && \
    python3 -m pip install -U .[voice]

原因らしきもの

このIssueが関係ありそう。よくわからない。ボイス周りで最近のものだとこれくらいしかないっぽい。

VoiceChannel.connect() hangs up after completing handshake. #2377

かず猫

インターネット初心者です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください