Ubuntu Core: как добавить функциональность paho-mqtt Python

Вопрос или проблема

Контекст: Ubuntu Core на Raspberry Pi 3B+

Модуль paho-mqtt для Python требуется, чтобы скрипт на Python мог подписываться на тему MQTT и записывать сообщения в журнал.

Наблюдение из терминала: команды pip / pip3 не найдены.

Цель: установить функциональность модуля paho-MQTT для Ubuntu Core на Raspberry Pi. Для этого в стандартной настройке модуль устанавливается с помощью pip.

MQTT-устройство, реализованное в Ubuntu Core, находится здесь: https://ubuntu.com/appliance/mosquitto/raspberry-pi#macos

Правильный ли это путь для установки paho-MQTT, если я спрашиваю, как установить pip? Если да, то как установить pip?

Если нет, то какова процедура установки paho-MQTT. ИЛИ вопрос заключается в следующем:

Как записывать сообщения MQTT в файл журнала без использования paho MQTT для Python

Я понимаю, что вместо использования команды apt-get (x86), Ubuntu-Core требует команду snap для добавления функциональности.

Ответ или решение

Установка paho-mqtt на Ubuntu Core для Raspberry Pi 3B+

Ubuntu Core — это минималистичная версия Ubuntu, оптимизированная для интернета вещей (IoT), которая использует систему пакетов Snap для управления приложениями. В традиционной версии Ubuntu для установки дополнительных Python-пакетов обычно используется pip. Однако в Ubuntu Core вы не найдете pip или apt-get, так как здесь основным инструментом установки является snap.

Установка paho-mqtt на Ubuntu Core

Для решения вашей задачи, вот пошаговая инструкция:

  1. Проверка доступности Snap: Убедитесь, что на вашей Ubuntu Core установлена поддержка Snap. Это делается командой:

    snap version

    Если Snap не установлен, установите его, следуя официальной документации Ubuntu для Ubuntu Core.

  2. Использование Snap для Python: Ubuntu Core не поддерживает установку Python пакетов напрямую через pip, однако можно воспользоваться уже предустановленным snap для Python. Как правило, snap пакеты имеют необходимые вам зависимости и позволяют запускам Python-скрипты. Убедитесь, что у вас есть Python snap:

    snap install python
  3. Создание Snap для paho-mqtt: Так как pip недоступен, создайте свой собственный snap, включающий в себя paho-mqtt.

    • Создайте директорию и файл snapcraft.yaml, где определите зависимости и скрипт для установки paho-mqtt через pip.
    • Вам потребуется Snapcraft: инструмент для сборки snap пакетов. Установите Snapcraft на вашей основной системе разработки, а не на Ubuntu Core.
  4. Пример snapcraft.yaml:

name: mqtt-client
version: '0.1'
summary: Simple MQTT client
description: |
  This snap provides an MQTT client using paho-mqtt to subscribe and log messages.

grade: devel
confinement: devmode

parts:
  python-mqtt:
    plugin: python
    python-version: python3
    source: .
    requirements: 
      - paho-mqtt

apps:
  mqtt-client:
    command: bin/mqtt_client

В этом примере snapcraft.yaml описывает настройки для сборки snap, который нужен для выполнения MQTT клиента с библиотекой paho-mqtt.

  1. Сборка и установка Snap: После настройки файла snapcraft.yaml создайте snap с помощью команды:
    snapcraft

    После создания snap, скопируйте его на Raspberry Pi и установите:

    snap install mqtt-client_x.y.z_amd64.snap --dangerous

Вывод

Хотя задача установки paho-mqtt на Ubuntu Core вначале кажется сложной из-за отсутствия pip, использование системы пакетов Snap открывает гибкие возможности для управления требуемыми приложениями и их зависимостями. Создание собственного snap позволяет внедрять необходимые модули Python и упрощает их развертывание на таких устройствах, как Raspberry Pi, под управлением Ubuntu Core. Соблюдение этой процедуры гарантирует, что MQTT-клиент будет работать корректно и безопасно на вашей системе IoT.

Мы рассмотрели все аспекты запроса, включая то, как настроить среду Ubuntu Core для работы с paho-mqtt, не прибегая к обычным пакетным менеджерам. Удачной работы с вашим проектом!

Оцените материал
Добавить комментарий

Капча загружается...