discord.pyを1.3.4にしなきゃ動かなくなったってお話
経緯
先日discord APIのアップデートが入り、バージョン1.3.4以前のdiscord.pyでは、以下のようなエラーが発生して動作しなくなってします。
TypeError:__new__() got an unexpected keyword argument 'deny_new'
(なんか1.2.5の時も似たようなのありましたね。KeyError
でしたっけ?)
解決法
discord.pyのバージョンを1.3.4以上にしてあげてください(記事掲載時点での最新は1.3.4)。
ちなみに現在のバージョンを確認するには、コンソール上でPythonのインタプリタ(対話モード)を開き、以下のコマンドを実行してください。
>>> import discord
>>> print(discord.__version__)
1.3.4
この場合は記事執筆時点で最新の、1.3.4がインストールされています。
今この記事を見ている人の大半は1.3.4以前のものを使っていると思いますので、1.3.3など違う出力になっていると思います。
バージョンを上げることができれば何でも大丈夫ですが、以下にいくつか方法を提示しておきます。
Herokuの場合
Herokuの場合はrequirements.txt
というファイルでライブラリを管理しているため、このファイルを編集して上げる必要があります。
以下が例です。
discord.py>=1.3.4
requirements.txtの書き方については、我らが味方note.nkmk.meが解説していますので、興味がある方は是非。
また、Herokuの場合、requirements.txtに記述したライブラリが自動でアップデートされるわけではないため、1.3.4のリリース後にデプロイをしていない場合、gitでコミットを行いデプロイして上げる必要があります。
「何いってんのかよくわかんねぇよ!」って人は上の通りにrequirements.txtを更新するだけでも大丈夫です
Windowsの場合
Windowsの場合は、以下のコマンドをコマンドプロントで実行すればdiscord.pyを更新することが出来ます。
1.3.4が入らない場合はdiscord.py
の部分をdiscord.py==1.3.4
に変更するなどしてみてください。
py -3 -m pip install -U discord.py
# voice関係のものを使っている場合
py -3 -m pip install -U discord.py[voice]
Linux or Macの場合
以下のコマンドをターミナルで実行してみてください。なお筆者はMacを持っていないためMacの仕様はよくわかってません。
python3 -m pip install -U discord.py
# Windowsの場合と同様にvoice関係の物を使っている場合
python3 -m pip install -U discord.py[voice]
終わりに
いかがでしたでしょうか。
「久しぶりにbotを起動したけど動かない!」みたいな方の手助けになったなら幸いです。
執筆が初めてなので、拙い箇所が多々あるかもしれませんがご容赦ください。
最後に、私がよく出没しているdiscordサーバのリンクを貼っておきます。
Discord Bot Portal JP
disocrd botについての質問などができるサーバですので、bot制作で躓いていたら参加してみると良いかもしれません。
Happy coding!
Discussion