@Volzas

Python ошибка got Future attached to a different loop, как решить?

Делаю телеграм бота на Telebot, есть функция с помощью которой создаю счет киви на оплату, функция async, потом когда юзер нажимает на кнопку купить вызываю эту функцию, но получаю ошибку. Сама функция -
kassa = QiwiKassa('Secret_key')
async def test_kassa():

async with QiwiKassa("Secret_key") as kassa:
kassa.tools.return_type = returns.ReturnType.JSON
sent_invoice = await kassa.new_bill(1.01, lifetime=44)
print("Url to pay:", sent_invoice['payUrl'])
await kassa.close()
код где я вызываю функцию -
elif call.data == 'qiwi':
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(test_kassa())
#далее идет выполнение другого кода
но как только доходит до выполнения функции, получаю ошибку -
Traceback (most recent call last):
File "C:/Users/Елена/PycharmProjects/SSDBot/setup.py", line 246, in
bot.polling(none_stop=True)
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\__init__.py", line 392, in polling
self.__threaded_polling(none_stop, interval, timeout)
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\__init__.py", line 416, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\util.py", line 109, in raise_exceptions
six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\site-packages\six.py", line 703, in reraise
raise value
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\util.py", line 60, in run
task(*args, **kwargs)
File "C:/Users/Елена/PycharmProjects/SSDBot/setup.py", line 170, in pay_check
loop.run_until_complete(test_kassa())
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\asyncio\base_events.py", line 583, in run_until_complete
return future.result()
File "C:/Users/Елена/PycharmProjects/SSDBot/setup.py", line 44, in test_kassa
sent_invoice = await kassa.new_bill(1.01, lifetime=44)
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\site-packages\aioqiwi\kassa\requests.py", line 119, in new_bill
response = await self.connector.request("PUT", url, data=data)
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\site-packages\aioqiwi\core\connectors\asyncio.py", line 194, in request
loop=self.loop,
File "C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\asyncio\tasks.py", line 435, in wait_for
await waiter
RuntimeError: Task cb=[_run_until_complete_cb() at C:\Users\Елена\AppData\Local\Programs\Python\Python37\lib\asyncio\base_events.py:157]> got Future attached to a different loop
Помогите пожалуйста, уже перепробовал кучу способов, но так и не могу выполнить эту функцию. Для создания счетов использую aioqiwi.
  • Вопрос задан
  • 489 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы