create_task = asyncio.async: SyntaxError: invalid syntax

懵懂的女人 提交于 2019-11-26 07:43:12

问题


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.


回答1:


Where does the error come from?

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.

How to fix it

You can either:

  • downgrade your version of Python to 3.6.
  • install another version of discord.py, based on the rewrite branch which is under active development, for example with the command : python3 -m pip install --user -U https://github.com/Rapptz/discord.py/archive/rewrite.zip



回答2:


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



来源:https://stackoverflow.com/questions/51196568/create-task-asyncio-async-syntaxerror-invalid-syntax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!