Сайт для сервера
Делаю свою онлайн игру на питоне(3.11), с помощью библиотеки pygame(2.5.2). И вот я реализовал клиент, реализовал сервер, но так же потребовалось сделать веб-сайт на фреймворке flask(3.0.2), на котором будут отображаться основные данные о сервере. Обычное(последовательное) программирование отпало сразу. Стал пробовать выполнять задачу через асинхронное программирование, библиотека asyncio, пытался запускать функции через метод "create_task"(обе запускаемы таким образом функции я переделал в асинхронные), однако при запуске программы я получаю следующую ошибку: "RuntimeError: no running event loop; sys:1: RuntimeWarning: coroutine 'main' was never awaited". Ошибку я перевёл, но так и не понял, что она значит. Если здесь есть люди, которые разбираются в подобном, подскажите пожалуйста, как эту ошибку починить? Заранее спасибо за оставленные советы и критику.
P.S. Если понадобится ещё какая-то информация, то вот гитхаб проекта, файл main.py - клиент, server_test.py - сервер.
**Как исправить ошибку**
Чтобы исправить ошибку, вам нужно запустить цикл событий в вашей программе. Это можно сделать следующим образом:
```python
if __name__ == "__main__":
# Создаем экземпляр приложения Flask
app = Flask(__name__)
# Запускаем цикл событий Flask
app.run()
```
Здесь `app.run()` запускает встроенный веб-сервер Flask и встроенный цикл событий. Теперь любые асинхронные функции, которые вы запускаете с помощью `create_task`, будут выполняться в этом цикле событий.
**Понимание сообщения об ошибке**
* **RuntimeError: no running event loop** означает, что на момент выполнения асинхронной функции нет запущенного цикла событий.
* **sys:1: RuntimeWarning: coroutine 'main' was never awaited** предупреждает о том, что coroutine `main` (главная функция вашей программы) никогда не была ожидаема. В асинхронном программировании ожидаемые coroutine приостанавливаются и возобновляются циклом событий, поэтому эту ошибку следует устранять.
**Дополнительные советы**
* Не забудьте запустить цикл событий в главной функции программы (часто называемой `main`).
* Используйте `await` для ожидания выполнения асинхронных функций.
* Вы можете использовать `asyncio.run()` как более краткий и простой метод запуска асинхронных функций в основном цикле событий.
Ваш код будет выглядеть примерно так:
```python
if __name__ == "__main__":
from asyncio import run
# Асинхронные функции
async def handle_socket():
pass
async def handle_web_requests():
pass
# Запуск асинхронных функций
run([handle_socket(), handle_web_requests()])
# Запуск веб-сервера Flask
app.run()
```
Теперь ваши асинхронные функции будут выполняться в цикле событий, и ошибка должна быть устранена.