Python3 asyncpg 的语法错误

Python3 SyntaxError with asyncpg

我正在尝试创建连接池,如 the documentation 所示,以测试模块。

这是我最后一次尝试:

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

我在第 4 行收到语法错误,指向 'with':

async with asyncpg.create_pool(dsn=cs) as pool:
         ^
SyntaxError: invalid syntax

运行 终端上 Python 解释器的代码产生相同的结果。

Python 版本是 3.6.5,运行 来自终端的脚本 python3 script.py

您应该将代码包装在 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()

更多详情:example-chain-coroutines