asyncio.run RuntimeError: Событие l oop закрыто - PullRequest
0 голосов
/ 01 мая 2020
import robloxapi, asyncio
client = robloxapi.Client(".ROBLOSECURITY Cookie Here") # Removed this for security reasons

async def main():
    user = await client.get_self()

    try:
        role = await user.get_role_in_group(1)
    except robloxapi.utils.errors.NotFound:
        role = None

    if role:    
        print(role.name)
    else:
        print("Not in group")

asyncio.run(main())

Этот код вызывает RuntimeError: Event loop is closed, и я понятия не имею, почему,

Я пытался заменить asyncio.run этим

loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

, но это дало мне та же ошибка

1 Ответ

0 голосов
/ 08 мая 2020

Я новичок в StackOverflow и не могу писать комментарии. Si я напишу здесь в качестве ответа. Я столкнулся с подобной проблемой с asyncio.

Таким образом, проблема, которую я решил, была изменена с помощью Eventl oop python.

В python версиях ниже 3.8-: - SelectorEventL oop используется в windows - ProactorEventL oop используется в Linux.

(в python 3.8+ они оба ProactorEventL oop) Так что это не поможет, если у вас установлена ​​python 3.8+. Поскольку у вас будет тот же eventl oop на windows, что и на WSL.

, если у вас версия python ниже 3.8 - это, вероятно, поможет вам.

Так Вы можете попытаться вручную установить ProactorEventL oop, который также используется, когда вы используете WSL

asyncio.set_event_loop(asyncio.ProactorEventLoop())

loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

Надеюсь, эта информация поможет вам.

...