/ / aiomysql a sqlalchemy základný príklad vytvára chybu syntaxe na python 3.6 - python-3.x, sqlalchemy, python-asyncio

amiomysql a sqlalchemy základný príklad vytvára chybu syntaxe na python 3.6 - python-3.x, sqlalchemy, python-asyncio

Snažím sa integrovať sqlalchemy s aiomysql na python 3.6, pomocou oficiálneho príkladu GitHub tu je môj úplný kód

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()

ale dostanem nasledujúcu chybu

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

čo chýba v mojom kóde? Viem, že chyba je celkom zjavná, ale ako ju môžem opraviť?

odpovede:

1 pre odpoveď č. 1

async with môže nastať iba vo vnútri async def . Presuňte kód do async def main() a zavolajte ho run_until_complete()