Reputation: 397
I'm creating a bot for Discord, and I just wrote this simple code:
import discord
TOKEN = "token"
client = discord.Client()
@client.event
async def on_ready():
print('Bot is ready.')
client.run(TOKEN)
and it produces the following error:
Traceback (most recent call last):
File "/Users/pcaires/Desktop/Programação/Python/Discord Bots/Main.py", line 1, in <module>
import discord
File "/Users/pcaires/Desktop/Programação/Python/Discord Bots/venv/lib/python3.7/site-packages/discord/__init__.py", line 20, in <module>
from .client import Client, AppInfo, ChannelPermissions
File "/Users/pcaires/Desktop/Programação/Python/Discord Bots/venv/lib/python3.7/site-packages/discord/client.py", line 38, in <module>
from .state import ConnectionState
File "/Users/pcaires/Desktop/Programação/Python/Discord Bots/venv/lib/python3.7/site-packages/discord/state.py", line 36, in <module>
from . import utils, compat
File "/Users/pcaires/Desktop/Programação/Python/Discord Bots/venv/lib/python3.7/site-packages/discord/compat.py", line 32
create_task = asyncio.async
^
SyntaxError: invalid syntax
I searched and searched in the internet, and most of the people say to use Python 3.7, and that's what I've been using. Also, I've been using PyCharm as my IDE for Python.
Upvotes: 21
Views: 28638
Reputation: 547
fix it with
pip install --upgrade aiohttp
pip install --upgrade websockets
Upvotes: 1
Reputation: 573
As a quick fix you can change asyncio.async
to asyncio.ensure_future
in the installed offending module and run it. Obviously the right thing to do is get the module updated, but when that's not possible the above will get it running again.
Upvotes: 1
Reputation: 30027
It is only relevant for Python 3.3, which does not include asyncio in its stdlib.
Upvotes: 1
Reputation: 795
The version of discord.py you are using does not support Python 3.7 (in which async
becomes a reserved keyword), as explained in this issue.
This version of discord.py, which is the default branch on the GitHub repo, is sadly the one installed by Pip.
You can either:
python3 -m pip install --user -U https://github.com/Rapptz/discord.py/archive/rewrite.zip
Upvotes: 27
Reputation: 117
You can manually edit the file and change that line from create_task = asyncio.async
to create_task = getattr(asyncio, 'async')
See more info here: https://github.com/Rapptz/discord.py/issues/1249
Upvotes: 10