Пока писал в ответ Max Watson, обнаружил, что был не внимателен и создал проект с интерпритатором Python3.11. Изменил интерпритатор на 3.6 и код посыпался. PyCharm в коде ошибок не видит, но при запуске кода сразу выскакивают ошибки:
Traceback (most recent call last):
File "E:\pythonProjects\BotAnekdotTelebot2\main.py", line 1, in <module>
import telebot
File "C:\Users\alexr\venv\lib\site-packages\telebot\__init__.py", line 13, in <module>
import telebot.util
File "C:\Users\alexr\venv\lib\site-packages\telebot\util.py", line 14, in <module>
from telebot import types
File "C:\Users\alexr\venv\lib\site-packages\telebot\types.py", line 2
from __future__ import annotations
^
SyntaxError: future feature annotations is not defined
Я так понимаю не получается импортировать Телебот. хотя его и остальное я установил в проект с помощью pip install ....
Приведу полный код, который запустил по ошибке в версии 3.11 и он работал.
import telebot
import asyncio
import requests
import random
import logging
import time
from conf import API_KEY
from bs4 import BeautifulSoup as b
logging.basicConfig(level=logging.INFO)
bot = telebot.TeleBot(API_KEY)
URL_UTR = ['https://anekdotov.net/ancomp/', 'https://anekdotov.net/anekdot/week/',
'https://anekdotov.net/anekdot/blonde/', 'https://anekdotov.net/anekdot/family/',
'https://anekdotov.net/anekdot/today/', 'https://anekdotov.net/intim/', 'https://anekdotov.net/anekdot/gai/',
'https://anekdotov.net/anwar/', 'https://anekdotov.net/anekdot/narkom/', 'https://anekdotov.net',
'https://anekdotov.net/vovochka/', 'https://anekdotov.net/anekdot/vk/', 'https://anekdotov.net/anekdot/skazka/']
URL = random.choice(URL_UTR)
def parser(url):
r = requests.get(URL)
soup = b(r.text, 'html.parser')
anekantavada = soup.find_all('div', class_='anekdot')
return [c.text for c in anekantavada]
list_of_jokes = parser(URL)
random.shuffle(list_of_jokes)
@bot.message_handler(commands=['1']) # /1 Старт бота
def hello(message):
bot.send_message(message.chat.id, 'str')
def jokes():
for i in range(3):
time.sleep(10)
bot.send_message(-1001584223752, list_of_jokes[0], disable_notification=True)
del list_of_jokes[0]
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.create_task(jokes())
bot.polling(none_stop=True)