Не удаётся поставить бота на хостинг

Пытаюсь поставить на pythonAnyWhere. выдаёт ошибку:

File "/home/ezhik/bot/botchat.py", line 16, in async def get_weather(city: str) -> python_weather.Weather | None: AttributeError: module 'python_weather' has no attribute 'Weather'

import asyncio
import logging
import python_weather
import telebot
from telebot import types

TOKEN = "мой токен"

logging.basicConfig(level=logging.INFO)

bot = telebot.TeleBot(TOKEN)

async def get_weather(city: str) -> python_weather | None:
    try:
        async with python_weather.Client(unit=python_weather.IMPERIAL) as client:
            weather = await client.get(city)
            return weather
    except Exception as e:
        logging.error(f"Ошибка при получении погоды: {e}")
        return None

async def process_weather(message: types.Message, city: str) -> None:
    try:
        weather = await get_weather(city)
        if weather:
            celsius = round((weather.current.temperature - 32) * 5 / 9)
            text = f"Погода в городе {city}:\n{celsius}°C, {weather.current.description}"
            await message.reply(text)
        else:
            await message.reply(f"Не удалось получить погоду для города {city}. Попробуйте другой город.")
    except Exception as e:
        logging.error(f"Ошибка при обработке запроса погоды: {e}")
        await message.reply(f"Произошла ошибка: {e}")

@bot.message_handler(commands=['start', 'help'])
async def send_welcome(message: types.Message):
    await message.reply("Привет! Я бот, который показывает погоду.\n/start - Показывает это сообщение\n[город] - Узнать погоду в городе")

@bot.message_handler(func=lambda message: True)
async def handle_text(message: types.Message):
    city = message.text
    asyncio.create_task(process_weather(message, city))


async def main():
    try:
        print("Бот запущен...")
        await bot.infinity_polling()
    except Exception as e:
        logging.exception("Ошибка при запуске бота:")
        print(f"Ошибка при запуске бота: {e}")

if __name__ == '__main__':
    asyncio.run(main())

Писал чатом gpt, так как всё время выдавало ошибку при запуске не на хостинге (в пайчарме).

Помогите пожалуйста, очень срочно.


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