首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复aiohttp应用程序中初始化引擎的aiopg异常?

如何修复aiohttp应用程序中初始化引擎的aiopg异常?
EN

Stack Overflow用户
提问于 2020-10-14 21:46:33
回答 1查看 101关注 0票数 0

我正在学习使用官方文档的aiohttp,在我必须获得数据库连接的步骤中,代码引发异常。我有一个函数,并像文档中那样使用: app.on_startup.append( function )调用它。函数代码如下:

代码语言:javascript
复制
conf = app['config']['postgres']
engine = await aiopg.sa.create_engine(
    database=conf['database'],
    user=conf['user'],
    password=conf['password'],
    host=conf['host'],
    port=conf['port'],
    minsize=conf['minsize'],
    maxsize=conf['maxsize'],
)
app['db'] = engine

异常情况如下:

代码语言:javascript
复制
Traceback (most recent call last):
  File "chapi_pools\main.py", line 14, in 
    web.run_app(app)
  File "C:\coding\Chapi\env\lib\site-packages\aiohttp\web.py", line 419, in run_app
    loop.run_until_complete(_run_app(app,
  File "c:\myprogramm\python\lib\asyncio\base_events.py", line 616, in run_until_complete
    return future.result()
  File "C:\coding\Chapi\env\lib\site-packages\aiohttp\web.py", line 305, in _run_app
    await runner.setup()
  File "C:\coding\Chapi\env\lib\site-packages\aiohttp\web_runner.py", line 232, in setup
    self._server = await self._make_server()
  File "C:\coding\Chapi\env\lib\site-packages\aiohttp\web_runner.py", line 331, in _make_server
    await self._app.startup()
  File "C:\coding\Chapi\env\lib\site-packages\aiohttp\web_app.py", line 389, in startup
    await self.on_startup.send(self)
  File "C:\coding\Chapi\env\lib\site-packages\aiohttp\signals.py", line 34, in send
    await receiver(*args, **kwargs)  # type: ignore
  File "C:\coding\Chapi\chapi_pools\db.py", line 46, in init_pg
    engine = await aiopg.sa.create_engine(
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\sa\engine.py", line 69, in _create_engine
    pool = await aiopg.create_pool(
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\pool.py", line 155, in from_pool_fill
    await self._fill_free_pool(False)
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\pool.py", line 193, in _fill_free_pool
    conn = await connect(
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\connection.py", line 38, in connect
    coro = Connection(
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\connection.py", line 92, in __init__
    self._loop.add_reader(self._fileno, self._ready, self._weakref)
  File "c:\myprogramm\python\lib\asyncio\events.py", line 501, in add_reader
    raise NotImplementedError
NotImplementedError
Exception ignored in: 
Traceback (most recent call last):
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\connection.py", line 512, in __del__
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\connection.py", line 310, in close
  File "C:\coding\Chapi\env\lib\site-packages\aiopg\connection.py", line 285, in _close
  File "c:\myprogramm\python\lib\asyncio\events.py", line 504, in remove_reader
NotImplementedError:

请帮帮我。我不知道该怎么处理它

EN

回答 1

Stack Overflow用户

发布于 2021-09-15 15:05:25

该问题是由于windows操作系统环境造成的。

从以下链接复制了一个解决方案:https://github.com/aio-libs/aiopg/issues/678#issuecomment-667908402

快速解决方法是将以下代码添加到代码中

代码语言:javascript
复制
import sys, asyncio
if sys.version_info >= (3, 8) and sys.platform.lower().startswith("win"):
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64354726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档