相关疑难解决方法(0)

asyncio.get_event_loop(): DeprecationWarning: 没有当前事件循环

我正在构建一个 SMTP 服务器,并aiosmtpd使用这些示例作为构建的基础。下面是程序入口点的代码片段。

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.create_task(amain(loop=loop))
    try:
        loop.run_forever()
    except KeyboardInterrupt:
        pass
Run Code Online (Sandbox Code Playgroud)

当我运行该程序时,我收到以下警告:

server.py:61: DeprecationWarning: There is no current event loop
  loop = asyncio.get_event_loop()
Run Code Online (Sandbox Code Playgroud)

实现这个的正确方法是什么?

python python-asyncio aiosmtpd

34
推荐指数
1
解决办法
4万
查看次数

何时使用 asyncio.get_running_loop() 与 asyncio.get_event_loop()?

我见过使用运行阻塞代码

loop = asyncio.get_running_loop()
await loop.run_in_executor(None, blockingfunc)
Run Code Online (Sandbox Code Playgroud)

loop = asyncio.get_event_loop()
await loop.run_in_executor(None, blockingfunc)
Run Code Online (Sandbox Code Playgroud)

我们什么时候应该使用asyncio.get_running_loop()vs asyncio.get_event_loop()

python python-asyncio

15
推荐指数
1
解决办法
2万
查看次数

RuntimeError:线程“ Thread-1”,多线程和异步错误中没有当前事件循环

我有一个调用asyncio循环的线程,但是这导致了所提到的异常:

RuntimeError: There is no current event loop in thread 'Thread-1'.
Run Code Online (Sandbox Code Playgroud)

这个问题:RuntimeError:异步+ apscheduler中的线程中没有当前事件循环遇到相同的问题,但是它们引用的是我没有的调度程序。

我的代码如下:

def worker(ws):
      l1 = asyncio.get_event_loop()
      l1.run_until_complete(ws.start())  


      l2 = asyncio.get_event_loop()
      l2.run_forever()


if __name__ == '__main__':
    ws = Server()
    p = threading.Thread(target=worker,args=(ws,))
    p.start()


    while True:
        try:
            #...do sth
        except KeyboardInterrupt:
            p.join()
            exit() 
Run Code Online (Sandbox Code Playgroud)

python multithreading python-asyncio

6
推荐指数
1
解决办法
5702
查看次数

标签 统计

python ×3

python-asyncio ×3

aiosmtpd ×1

multithreading ×1