discord - create_task=asyncio.async: SyntaxError: sintaxis no válida
discord.py (2)
Estoy creando un bot para Discord, y acabo de escribir este sencillo código:
import discord
TOKEN = "token"
client = discord.Client()
@client.event
async def on_ready():
print(''Bot is ready.'')
client.run(TOKEN)
y produce el siguiente 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
Busqué y busqué en Internet, y la mayoría de las personas dicen usar Python 3.7, y eso es lo que he estado usando. Además, he estado usando PyCharm como mi IDE para Python.
¿De dónde viene el error?
La versión de discord.py que está utilizando no es compatible con Python
3.7
(en el que
async
convierte en una palabra clave reservada), como se explica en
este problema
.
Esta versión de discord.py, que es la rama predeterminada en el
repositorio de GitHub
, lamentablemente es la que está instalada por Pip.
Como arreglarlo
Tu también puedes:
- baja tu versión de Python a 3.6.
-
instale otra versión de discord.py, basada en la
rama de reescritura
que está en desarrollo activo
, por ejemplo con el comando:
python3 -m pip install --user -U https://github.com/Rapptz/discord.py/archive/rewrite.zip
Puede editar manualmente el archivo y cambiar esa línea de
create_task = asyncio.async
a
create_task = getattr(asyncio, ''async'')
Ver más información aquí: https://github.com/Rapptz/discord.py/issues/1249