Ошибка при выполнение функции в telebot pytnon

Использую бибилиотеку telebot в python чтобы управлять ботом. До этого все функции из других файлов запускались, а тут появилась проблемка. Представим что юзер нажимает старт и функция запускается

import TelegramNumberChecker.Telegram_checker as tgcheck
import telebot

def start_bot():
    @bot.message_handler(commands=['start'])
    def handler_start(message):
        inputdata = '7900000000'
        telegram_phone = tgcheck.get_names(phone_number=inputdata)

Эта функция выглядит +- так: (чтобы не раскрывать весь код)

from telethon import TelegramClient, errors, events, sync
from telethon.tl.types import InputPhoneContact
from telethon import functions
from getpass import getpass

API_ID = ''
API_HASH = ''
PHONE_NUMBER = ''


def get_names(phone_number): 
    #client connect session
    client = TelegramClient(PHONE_NUMBER, API_ID, API_HASH)
    client.connect()
    #дальше идёт код

Сообственно говоря после того как я запустил бота и нажал start всё что до этой функции оно может обработать, а на ней вылазит ошибка, при том что если эту функцию запустить отдельно, то-есть не подключать к боту, то она работает:

File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\asyncio\events.py", line 639, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'WorkerThread2'.

Может ли это быть из-за того что я использую 2 библиотеки telebot и telethon?


Ответы (1 шт):

Автор решения: Kowl

Спасибо @CrazyElf. Скинул уже существующий ответ на вопрос тык

2 строки кода вставить перед начало выполнения функции

def get_names(phone_number): 
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    #client connect session
    client = TelegramClient(PHONE_NUMBER, API_ID, API_HASH)
    client.connect()
    #дальше идёт код
    
→ Ссылка