/ / aiomysqlとsqlalchemyの基本例では、python 3.6で構文エラーが発生します - python-3.x、sqlalchemy、python-asyncio

aiomysqlとsqlalchemyの基本的な例では、Python 3.6で構文エラーが発生する - python-3.x、sqlalchemy、python-asyncio

公式の例を使って、sqlalchemyをaiomysqlとpython 3.6で統合しようとしています ギブス これが私のフルコードです

import sqlalchemy as sa
import asyncio
from aiomysql.sa import create_engine

DB1 = dict(host="xxx",...)
DB2 = dict(host="yyy",...)

DATABASES = dict(db1=db1, db2=db2)

async def get_engine(loop, configs):
configs = configs.copy()
configs["loop"] = loop
engine = await create_engine(**configs)
return engine

class Engine(object):
__shared_state = {}
running = None

def __init__(self, loop):
print("init", Engine.running)
self.__dict__ = Engine.__shared_state
self.loop = loop
if not Engine.running:
self.ignite(loop)

def connect(self, key, configs, loop):
engine = loop.run_until_complete(get_engine(loop, configs))
self.__dict__[key] = engine

def ignite(self, loop):
Engine.running = True
for key, configs in DATABASES.items():
self.connect(key, configs, loop)

def DoMyQueries(conn):
pass

ioloop = asyncio.get_event_loop()
engine = Engine(ioloop)
async with engine.db1.acquire() as conn:
DoMyQueries(conn)

engine.db1.close()
await engine.wait_closed()

しかし、私は次のエラーが出ています

 File "myfile.py", line 45
async with engine.db1.acquire() as conn:
^
SyntaxError: invalid syntax

私のコードに何が欠けていますか?私はエラーがかなり明白であることを知っています、しかし、どうやってそれを直すのですか?

回答:

回答№1は1

async with 内側でしか起こらない async def . あなたのコードを async def main() そしてでそれを呼び出す run_until_complete()