The Azure IoT product group has been busy making improvements to our Python SDK for Azure IoTHub. The biggest improvement is that they’ve put a fix in for the infamous “libboost” issue that prevented the PIP package from working on the Raspberry Pi. Previously, if you wanted to use the Python SDK on a Raspberry Pi, you had to manually build from the source, a time and resource intensive process.
If you aren’t familiar with it, Boost allows you to invoke C code from Python (the Python SDK is built on the C SDK).
Base SDK install/usage
For now, they’ve updated the SDK to link against the current version of libboost that works on the latest version or Raspbian stretch (1.62.0). Future improvements may remove this requirement, but for now, you need to make sure that libboost is installed on the Pi (it’s not, by default). So use the following two statements to get the SDK installed and setup:
sudo apt-get install libboost-python1.62.0 pip install azure-iothub-device-client
IoT Edge/Docker
FROM python:2.7.15-stretch
WORKDIR /usr/src/app
RUN apt-get update && apt-get install libboost-python1.62.0
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python", "-u", "./app.py" ]
the requirements.txt file, just contains one line: “azure-iothub-device-client”
next up, I’ll be testing with a full blown IoT Edge module on the raspberry pi, and I’ll post the results soon