В данном проекте реализовано клиент-серверное приложение на основе сокетов библиотеки PyZMQ.
- Сервер отправляет массив случайных чисел (поток стримится). Дополнительно: видео поток
- Клиент подключается к стриму, принимает числа и печатает на экран (видео)
- Приложение выполнено на основе сокетов библиотеки PyZMQ
- Клиент-серверное приложение развернуто на фреймворке Flask
- Для логирования используется библиотека loguru
- Для работы с видео используется библиотека opencv
- В качестве инстумента для управления зависимостями используется Poetry
- Разработка выполнена на MacOS
Как говорилось выше, в качестве инструмента для управления зависимостями в проекте используется Poetry. Если вы пользуетесь ей, то инструкция по установке следующая:
- Склонируйте репозиторий
git clone ...
- Откройте проект в среде разработки и установите зависимости
poetry install
- Переходите к пункту Запуск проекта
Если вы не пользуетесь Poetry, то установите его в виртуальное окружение. Для установки зависимостей выполните следующие инструкции
- Склонируйте репозиторий
git clone ...
- Откройте проект в среде разработки и создайте виртуальное окружение
python3 -m venv venv
- Активируйте виртуальное окружение
source venv/bin/activate
- Установите Poetry с помощью менеджера пакетов pip
pip install poetry
- Далее установите зависимости в виртуальном окружении
poetry install
- Переходите к пункту Запуск проекта
Если Вы не хотите тратить время на установку Poetry или возникли какие-то ошибки при установке, то воспользуйтесь pip. Для этого:
- Склонируйте репозиторий
git clone ...
- Откройте проект в среде разработки и создайте виртуальное окружение
python3 -m venv venv
- Активируйте виртуальное окружение
source venv/bin/activate
- Далее установите зависимости в виртуальном окружении
pip install -r requirements.txt
- Переходите к пункту Запуск проекта
🔥 Запуск проекта через команду poetry
🔥
poetry run my-stream
- или
🪩 Запуск проекта, как модуль 🪩
poetry run python -m src
- или
python
python -m src
Примечание: проект нужно запускать на ноутбуке, который имеет веб-камеру. Запуск проекта может произойти не сразу, так как операционная система может потребовать разрешение на доступ к камере (как, например, на MacOS). Попробуйте несколько раз запустить проект, наберитесь терпения и предоставьте доступ к камере, если такое требуется😇 🔓
После запуска проекта окно терминала выглядит так: