web-dev-qa-db-fra.com

create_task = asyncio.async: SyntaxError: syntaxe non valide

Je crée un bot pour Discord, et je viens d'écrire ce code simple:

import discord

TOKEN = "token"

client = discord.Client()


@client.event
async def on_ready():
    print('Bot is ready.')


client.run(TOKEN)

et cela produit l'erreur suivante:

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

J'ai cherché et cherché sur Internet, et la plupart des gens disent d'utiliser Python 3,7, et c'est ce que j'utilise. De plus, j'utilise PyCharm comme IDE pour Python.

14
O Tal Antiquado

D'où vient l'erreur?

La version de discord.py que vous utilisez ne prend pas en charge Python 3.7 (dans lequel async devient un mot-clé réservé), comme expliqué dans ce problème . Cette version de discord.py, qui est la branche par défaut de GitHub repo , est malheureusement celle installée par Pip .

Comment le réparer

Vous pouvez soit:

  • rétrograder votre version de Python à 3.6.
  • installez une autre version de discord.py, basée sur la branche de réécriture en cours de développement, par exemple avec la commande: python3 -m pip install --user -U https://github.com/Rapptz/discord.py/archive/rewrite.Zip
18
cmousset

Vous pouvez éditer manuellement le fichier et changer cette ligne de create_task = asyncio.async À create_task = getattr(asyncio, 'async')

Voir plus d'informations ici: https://github.com/Rapptz/discord.py/issues/1249

6
vhs