@dyrtage6

Не могу решить проблему с vk_api, выходит ошибка что нету библиотеки VkEventType(python3). Что делать?

Пытаюсь сделать бота для друзей. Добавил модуль wikipedia, чтобы находили термины и другое. Но возникает ошибка -
Traceback (most recent call last):
File "/home/dyrtage2006/vbotk.py", line 31, in
if event.type == VkEventType.MESSAGE_NEW:
NameError: name 'VkEventType' is not defined

Вот как выглядит код -

import vk_api
    from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
    import random
    import wikipedia
    
    vk = vk_api.VkApi(token="какой то токен")
    vk._auth_token()
    vk.get_api()
    longpoll = VkBotLongPoll(vk, какой то айди)
    
    play = ["Бумага", "Ножницы", "Камень"]
    wikipedia.set_lang("RU")
    
    while True:
        for event in longpoll.listen():
            if event.type == VkBotEventType.MESSAGE_NEW:
                if event.object.peer_id != event.object.from_id:
                    if event.object.text.lower() == "привет":
                        vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "Привет! Я бот беседы. Я умею играть(команда 'Игра'), смотреть информацию с Википедии(в стадии разработки). Остально тоже в стадии разработки.",
                                                    "random_id": 0})
                    if event.object.text.lower() == "игра":
                        vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "Давай сыграем в игру 'Камень, ножницы, бумага'. Напиши свой ход и я его сделаю",
                                                    "random_id": 0})
                    if event.object.text.lower() == "бумага" or event.object.text.lower() == "ножницы" or event.object.text.lower() == "камень":
                        vk.method("messages.send", {"peer_id": event.object.peer_id, "message": random.choice(play) + ". Теперь сам думай кто выиграл, потому что разработчику лень додумывать",
                                                    "random_id": 0})
                    if event.object.text.lower() == "вики":
                        vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "Введите запрос",
                                                    "random_id": 0})
                    for event in longpoll.listen():
                        if event.type == VkEventType.MESSAGE_NEW:
                            if event.from_chat:
                                vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "Вот что я нашёл: \n" + str(wikipedia.summary(event.text)),
                                                    "random_id": 0})


Если добавляю VkEventType, то снова выходит ошибка -
Traceback (most recent call last):
File "/home/dyrtage2006/vbotk.py", line 2, in
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType, VkEventType
ImportError: cannot import name 'VkEventType' from 'vk_api.bot_longpoll

Подскажите как сделать.
  • Вопрос задан
  • 382 просмотра
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Эта переменная находится в библиотеке vk_api,импортируйте из неё. Вы из лонгполлинга тянете
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы