web-dev-qa-db-ja.com

create_task = asyncio.async:SyntaxError:無効な構文

Discordのボットを作成していますが、次の簡単なコードを作成しました。

import discord

TOKEN = "token"

client = discord.Client()


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


client.run(TOKEN)

そして、次のエラーを生成します。

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

私はインターネットで検索して検索しましたが、ほとんどの人はPython 3.7を使用すると言います。また、PythonのIDEとしてPyCharmを使用しています。

14
O Tal Antiquado

エラーはどこから来ますか?

使用しているdiscord.pyのバージョンはPython3.7asyncが予約キーワードになります)をサポートしていません)、 この問題 で説明されています。 GitHubリポジトリ のデフォルトのブランチであるdiscord.pyのこのバージョンは、悲しいことにPipによってインストールされたものです。

修正方法

次のいずれかを実行できます。

  • Pythonのバージョンを3.6にダウングレードします。
  • rewrite branchに基づいてdiscord.pyの別のバージョンをインストールします。これはアクティブな開発中です。たとえば、コマンドpython3 -m pip install --user -U https://github.com/Rapptz/discord.py/archive/rewrite.Zip
18
cmousset

ファイルを手動で編集し、その行をcreate_task = asyncio.asyncからcreate_task = getattr(asyncio, 'async')に変更できます

詳細については、こちらをご覧ください: https://github.com/Rapptz/discord.py/issues/1249

6
vhs