質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

3095閲覧

PythonでChatBotを作ろうと思っているのですが、”RuntimeError: Event loop is closed”というエラーがどうやっても解決しません。

rr000

総合スコア0

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/11/23 08:47

編集2022/11/23 11:01

前提

pythonで動かすdiscordbotを作っています。
実行しようとすると、”RuntimeError: Event loop is closed”というエラーが出てうまく実行できません。
全く同じ質問があったのでそちらも試してみたのですが、解決しませんでした。

実現したいこと

RuntimeError: Event loop is closedのエラーを解決したい。

発生している問題・エラーメッセージ

以下、エラーメッセージになります。

C:\Users\〇〇.ITnews>python3 -m pip install -U "discord.py[voice]"
Requirement already satisfied: discord.py[voice] in c:\users\○○\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (2.1.0)
Requirement already satisfied: aiohttp<4,>=3.7.4 in c:\users\〇〇\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from discord.py[voice]) (3.8.3)
Requirement already satisfied: PyNaCl<1.6,>=1.3.0 in c:\users\〇〇\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from discord.py[voice]) (1.5.0)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\users\〇〇\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from aiohttp<4,>=3.7.4->discord.py[voice]) (4.0.2)
Requirement already satisfied: aiosignal>=1.1.2 in c:\users\〇〇\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from aiohttp<4,>=3.7.4->discord.py[voice]) (1.3.1)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in c:\users\〇〇\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from aiohttp<4,>=3.7.4->discord.py[voice]) (2.1.1)
Requirement already satisfied: attrs>=17.3.0 in c:\users\○○\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from aiohttp<4,>=3.7.4->discord.py[voice]) (22.1.0)
Requirement already satisfied: frozenlist>=1.1.1 in c:\users\○○\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from aiohttp<4,>=3.7.4->discord.py[voice]) (1.3.3)
Requirement already satisfied: yarl<2.0,>=1.0 in c:\users\〇〇\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from aiohttp<4,>=3.7.4->discord.py[voice]) (1.8.1)
Requirement already satisfied: multidict<7.0,>=4.5 in c:\users\○○\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from aiohttp<4,>=3.7.4->discord.py[voice]) (6.0.2)
Requirement already satisfied: cffi>=1.4.1 in c:\users\○○\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from PyNaCl<1.6,>=1.3.0->discord.py[voice]) (1.15.1)
Requirement already satisfied: pycparser in c:\users\○○\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from cffi>=1.4.1->PyNaCl<1.6,>=1.3.0->discord.py[voice]) (2.21)
Requirement already satisfied: idna>=2.0 in c:\users\¥○○appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from yarl<2.0,>=1.0->aiohttp<4,>=3.7.4->discord.py[voice]) (3.4)
WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.
You should consider upgrading via the 'C:\Users\○○\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe -m pip install --upgrade pip' command.

C:\Users\○○.ITnews>python3 discord_bot.py
[2022-11-23 17:24:51] [INFO ] discord.client: logging in using static token
Traceback (most recent call last):
File "C:\Users\○○.ITnews\discord_bot.py", line 23, in <module>
client.run(TOKEN)
File "C:\Users\○○\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\discord\client.py", line 828, in run
asyncio.run(runner())
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 647, in run_until_complete
return future.result()
File "C:\Users\○○\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\discord\client.py", line 817, in runner
await self.start(token, reconnect=reconnect)
File "C:\Users\○○\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\discord\client.py", line 746, in start
await self.connect(reconnect=reconnect)
File "C:\Users\○○\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\discord\client.py", line 672, in connect
raise PrivilegedIntentsRequired(exc.shard_id) from None
discord.errors.PrivilegedIntentsRequired: Shard ID None is requesting privileged intents that have not been explicitly enabled in the developer portal. It is recommended to go to https://discord.com/developers/applications/ and explicitly enable the privileged intents within your application's page. If this is not possible, then consider disabling the privileged intents instead.
Exception ignored in: <function _ProactorBasePipeTransport.del at 0x00000151C85CF3A0>
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\proactor_events.py", line 116, in del
self.close()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\proactor_events.py", line 108, in close
self._loop.call_soon(self._call_connection_lost, None)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 751, in call_soon
self._check_closed()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 515, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

該当のソースコード

import discord
TOKEN = 'kokoni,TOKEN,haritukemasu' # TOKENを貼り付け
client = discord.Client(intents=discord.Intents.all())
@client.event
async def on_ready():
print('ログインしました')
print(client.user.name)
print(client.user.id)
print('________')
@client.event
async def on_message(message):
if message.author.bot:
return
if message.content == 'こんにちは':
await message.channel.send('やっほ~!')
client.run(TOKEN)

試したこと

サイトで見つけたものを試してエラー部分を調べてみましたが、解決に至りませんでした。
具体的には、pythonでコーディングしてbotアカウントの作成・登録、コマンドプロンプトを用いてdiscord.pyのインストール・実行を図りましたがエラーが出てしまったという風になります。

補足情報(FW/ツールのバージョンなど)

使用エディタ→VScode
使用言語  →python3.9.13
参考サイト →https://qiita.com/1ntegrale9/items/9d570ef8175cf178468f

慣れている部分が非常に少ないと感じるので、足りない部分があれば教えていただけるとありがたいです。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rr000

2022/11/23 09:37

試したことの記述が少ないとご指摘をいただきましたので、更新いたしました。 まだ足りないようでしたら、どこが足りないなどのご指摘いただけると幸いです。
guest

回答2

0

raise PrivilegedIntentsRequired (exc.shard_id) from None
discord.errors.PrivilegedIntentsRequired: Shard ID None is requesting privileged intents that have not been explicitly enabled in the developer portal. It is recommended to go to https://discord.com/developers/applications/ and explicitly enable the privileged intents within your application's page.

とあるので、クライアントにIntents を設定する場合、
Discord 側で必要なIntents 設定を有効にする必要があります。
質問のコードでは intents=discord.Intents.all() なので全ての Internts 設定を要求する

If this is not possible, then consider disabling the privileged intents instead.

不要ならば、クライアント側コードの intents を無効にすることでもエラー自体は解消できます
…が無効にするだけでは、ログインが出来るだけで必要な通知が受け取れません。
どの intents が必要かは、bot にこれから実装したい機能次第です。

  • クライアント側の intents を discord.Intents.default() にする。

 これでサーバ側の設定が無効でもエラー自体はでなくなります。

  • サーバー側 (ブラウザでdiscord サイトの設定ページへアクセス)

 bot の intents で PRESENCE と MESSAGE を有効にする。

以上でメッセージに反応する動作を確認しました。

関連【Discord.py】Discord.py 1.5で追加されたIntentsを攻略する

投稿2022/11/24 02:20

編集2022/11/24 02:31
teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

それは辛いですね、、、🥺

投稿2022/11/23 10:16

user_x_xxx

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問