'Discord.py: How to fix "event loop is closed"

I am new to programming. I am trying to have my discord bot open up command prompt to confirm it can run, but I am getting this error:

  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 719, in call_soon
    self._check_closed()
  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 508, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
[Finished in 0.871s]

Code:

import discord
from discord.ext import commands

client=commands.Bot(command_prefix = '.')

@client.event
async def on_ready():
    print('ok')

client.run(token)

What causes this error, and how can I fix this?

Edit: after some testing, I believe "client.run(token)" is what is causing "event loop is closed", not sure why.



Solution 1:[1]

I guess your bot has no function, so it just starts and then shuts down again, but I'm not sure. You would have to test this out by for example adding async def on_message(message).

Normally the Event loop is closed "Error" is caused by client.close() or client.logout()

Solution 2:[2]

This is because you didn't set the "token" variable, in your last line you use it but it isn't defined.

Or maybe did you set it but didn't write it here?

Solution 3:[3]

try enabling intents on the developer portal it worked for me when i had the same problem

Solution 4:[4]

Open Discord Developers Portal https://discord.com/developers/applications

Select your application

Open 'Bot' section in the settings

Enable SERVER MEMBERS INTENT.

now save changes and try :)

Solution 5:[5]

This is caused by a wrong or invalid token. Try to reset your token in the developer portal and start the bot with the new one.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 FlexGames
Solution 2 Eric Aya
Solution 3 idk
Solution 4 Dilshad
Solution 5 thePythonNoob