Eu ainda quero que meu MotorClient esteja no nível superior do módulo, então é isso que eu faço:eu corrijo
MotorClient.get_io_loop
para sempre retornar o loop atual. import asyncio
import motor.core
from motor.motor_asyncio import (
AsyncIOMotorClient as MotorClient,
)
# MongoDB client
client = MotorClient('mongodb://localhost:27017/test')
client.get_io_loop = asyncio.get_running_loop
# The current database ("test")
db = client.get_default_database()
# async context
async def main():
posts = db.posts
await posts.insert_one({'title': 'great success!')
# Run main()
asyncio.run(main())