Reputation: 278
I am trying to create a Discord bot with Python, however whenever I run the sample code here:
import discord
client = discord.Client()
@client.event
async def on_message(message):
# we do not want the bot to reply to itself
if message.author == client.user:
return
if message.content.startswith('!hello'):
msg = 'Hello {0.author.mention}'.format(message)
await client.send_message(message.channel, msg)
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.run('tokenhere')
It returns the error:
Traceback (most recent call last):
File "<ipython-input-6-ea5a13e5703d>", line 1, in <module>
runfile('C:/Users/User/Pictures/rito_bot.py', wdir='C:/Users/User/Pictures')
File "C:\Users\User\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 703, in runfile
execfile(filename, namespace)
File "C:\Users\User\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/User/Pictures/rito_bot.py", line 22, in <module>
client.run('token')
File "C:\Users\User\Anaconda3\lib\site-packages\discord\client.py", line 595, in run
_cleanup_loop(loop)
File "C:\Users\User\Anaconda3\lib\site-packages\discord\client.py", line 97, in _cleanup_loop
loop.close()
File "C:\Users\User\Anaconda3\lib\asyncio\selector_events.py", line 94, in close
raise RuntimeError("Cannot close a running event loop")
RuntimeError: Cannot close a running event loop
Every other line seems to run just fine, but without the last line it doesn't connect to the server, which makes it useless.
Note: I have seen the question here, however OP's solution doesn't seem applicable to my situation.
Upvotes: 5
Views: 13097
Reputation: 1
maybe import this , will help .as it works for me.
if you use jupytet notebook or google colab you will face this error
import nest_asyncio
nest_asyncio.apply()
Upvotes: 0
Reputation: 1904
I encountered the same problem trying to run Discord examples on Jupyter Notebook
. Moving to plain python script solved it for me.
Upvotes: 2
Reputation: 34186
(Spyder maintainer here) To run async code in our consoles you first need to install the nest_asyncio package and then call it before running any of your code as described on its Readme.
Upvotes: 9