Python3 SyntaxError с asyncpg
Я пытаюсь создать пул соединений, как показано в документации для тестирования модуля.
Вот моя последняя попытка:
import asyncpg
cs = "user:password@my_postgresql_server_ipaddr:port/database?name=db_name"
async with asyncpg.create_pool(dsn=cs) as pool:
print("pool created")
Я получаю SyntaxError в строке 4, указывая на 'с':
async with asyncpg.create_pool(dsn=cs) as pool:
^
SyntaxError: invalid syntax
Запуск кода из интерпретатора Python на терминале дает те же результаты.
Версия Python 3.6.5, запуск скрипта из терминала с python3 script.py
1 ответ
Решение
Вы должны обернуть свой код внутри async
функцию и вызовите ее внутри цикла, например:
import asyncio
import asyncpg
async def test():
cs = "user:password@my_postgresql_server_ipaddr:port/database?name=db_name"
async with asyncpg.create_pool(dsn=cs) as pool:
print("pool created")
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(test())
loop.close()
подробнее: пример-цепочка-сопрограммы