【发布时间】:2021-02-21 22:11:12
【问题描述】:
我想创建一个 Discord 机器人,它将我在控制台中输入的消息或使用另一段代码(例如传感器数据)生成的消息发送到通道。 我已经尝试过以下操作,但在输入第二条消息后,我得到了 RuntimeError: Event loop is closed。有什么建议吗?
import discord
def send_message(message):
token = "mydiscordbottoken"
channel_id = channelid
bot = discord.Client()
@bot.event
async def on_ready():
await bot.get_channel(channel_id).send(message)
await bot.close()
bot.run(token)
while True:
mes = input('Enter message: ')
send_message(mes)
我想在打印消息后回到我的 while 循环外的功能。 运行代码时出现以下错误:
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000206ABBDC940>
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\proactor_events.py", line 116, in __del__
self.close()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.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.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 719, in call_soon
self._check_closed()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 508, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000206ABBDC940>
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\proactor_events.py", line 116, in __del__
self.close()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.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.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 719, in call_soon
self._check_closed()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 508, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Traceback (most recent call last):
File "C:/Users/janik/PycharmProjects/learnpython/main.py", line 19, in <module>
send_message(mes)
File "C:/Users/janik/PycharmProjects/learnpython/main.py", line 14, in send_message
bot.run(token)
File "C:\Users\janik\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\discord\client.py", line 695, in run
future = asyncio.ensure_future(runner(), loop=loop)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\tasks.py", line 669, in ensure_future
task = loop.create_task(coro_or_future)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 429, in create_task
self._check_closed()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 508, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
sys:1: RuntimeWarning: coroutine 'Client.run.<locals>.runner' was never awaited
我对 asycio 和 discord.py 有点陌生,只是想将多条消息打印到我的 discord 服务器。 提前谢谢!
【问题讨论】:
标签: python runtime-error discord.py