1

我正在尝试创建一个连接池,如文档中所示来测试模块。

这是我的最后一次尝试:

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 行收到一个 SyntaxError,指向“with”:

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

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

Python 版本是 3.6.5,从终端运行脚本python3 script.py

4

1 回答 1

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

更多细节:示例链协程

于 2018-07-13T10:13:05.730 回答