Azure / azure-iot-sdk-python

A Python SDK for connecting devices to Microsoft Azure IoT services
MIT License
423 stars 377 forks source link

SDK with Raspbian: libboost_python-py34.so.1.55.0: cannot open shared object file: No such file or directory #115

Closed life-of-raspberry closed 6 years ago

life-of-raspberry commented 6 years ago

Description of the issue:

Installed sdk using:

$ pip3 install azure-iothub-device-client $ pip3 install azure-iothub-service-client

followed by:

$ apt-get install libboost-all-dev Libboost version 1.62.0.1+b4

Tried to run the "iothub_client_sample_x509.py" $ python3 iothub_client_sample_x509.py

Experiencing a similar issue as previously brought up by issue #81. See the console log below. I have a vanilla Raspbian 9 running. Is this an issue of the os or is it related to the sdk? So far I could not downgrade libboost from 1.62 to 1.55. Any ideas on how to make this work?

Console log of the issue:

Traceback (most recent call last): File "/home/pi/azure-iot-sdk-python/device/samples/iothub_client_sample_x509.py", line 8, in import iothub_client File "/usr/local/lib/python3.5/dist-packages/iothub_client/init.py", line 1, in from .iothub_client import * ImportError: libboost_python-py34.so.1.55.0: cannot open shared object file: No such file or directory

rprokhorov commented 6 years ago

I have the same issue. If I will find solution, I promice to post it there.

zolvarga commented 6 years ago

@life-of-raspberry

This is not issue of the SDK. This is an issue of the environment. Try the following commands: sudo pip install -U pip setuptools sudo apt-get install libboost1.55-all sudo apt-get install libboost-all-dev sudo apt-get update sudo apt-get upgrade

You can run all of them and that would fix the environment.

Best Regards, Zoltan

life-of-raspberry commented 6 years ago

@zolvarga Thanks for your Reply. I tried the suggested fix. However I can't find Version 1.55 of libbboost anymore.

sudo apt-get install libboost1.55-all Reading package lists... Done Building dependency tree
Reading state information... Done E: Unable to locate package libboost1.55-all E: Couldn't find any package by glob 'libboost1.55-all' E: Couldn't find any package by regex 'libboost1.55-all'

When I run: sudo apt-get install libboost-all-dev

Version 1.62 is being installed: dpkg -s libboost-dev | grep 'Version' Version: 1.62.0.1+b4

I am currently trying to find a repository providing libboost1.55 for Debian / Raspbian stretch

benc-uk commented 6 years ago

Why are these required steps and extra libraries not mentioned at all in the docs?

Also the steps provided to fix do not work, there is no package: libboost1.55-all

life-of-raspberry commented 6 years ago

I ran some tests with Raspian Stretch as well as Jessie. Bottom line is: I could not make the Installation path work using pip. Failed with "could not find package" on Jessie and got success message on Stretch but could not run samples (error as described above). This is what confused me, given the note "•Supported platforms: Windows, Linux (Ubuntu), Raspberry Pi" in https://github.com/Azure/azure-iot-sdk-python/blob/master/doc/python-devbox-setup.md

But: For both plattforms the alternative Linux Installation path described in the same tutorial is working and the samples can be run. No changes to the libboost Version had to be made.

So I consider this closed. It could be helpful to provide more detailed Information in the tutorial and the error message though.

Cheers, Nico

benc-uk commented 6 years ago

I've given up on Python and switched to Node.js, the Azure IOT libraries installed with a single "npm install" command and just work without this pain

io-Jacob commented 6 years ago

If anyone else runs into this issue on an R Pi 3, I got it to work by following the manual installation referenced above and using Python 3. Python 2 requires a libboost version that isn't readily available.

Just realized this was specifically for Python 3, but it came up when I searched around.

tameraw commented 6 years ago

@life-of-raspberry @benc-uk @io-Jacob thank you for your contribution to our open-sourced project!  Please help us improve by filling out this 2-minute customer satisfaction survey.

lupino3 commented 5 years ago

Hi, this seems to be broken on the last Raspbian (Buster), as there is no Boost libraries for Python 3.5, if I understand correctly the dpkg output.

Here is the error I am getting:

$ time python3.5 parse.py
Traceback (most recent call last):
  File "parse.py", line 4, in <module>
    import iothub_client
  File "/home/pi/.local/lib/python3.5/site-packages/iothub_client/__init__.py", line 1, in <module>
    from .iothub_client import *
ImportError: libboost_python-py35.so.1.62.0: cannot open shared object file: No such file or directory

And here is the dpkg output to find that file:

$ dpkg -S libboost_python-py3*
libboost-python1.62.0: /usr/lib/arm-linux-gnueabihf/libboost_python-py36.so.1.62.0
libboost-python1.62-dev: /usr/lib/arm-linux-gnueabihf/libboost_python-py36.so
libboost-python1.62-dev: /usr/lib/arm-linux-gnueabihf/libboost_python-py37.a
libboost-python1.62.0: /usr/lib/arm-linux-gnueabihf/libboost_python-py37.so.1.62.0
libboost-python1.62-dev: /usr/lib/arm-linux-gnueabihf/libboost_python-py36.a
libboost-python1.62-dev: /usr/lib/arm-linux-gnueabihf/libboost_python-py37.so
libboost-python1.58.0: /usr/lib/arm-linux-gnueabihf/libboost_python-py36.so.1.58.0

Would it be possible to have an updated package that supports Python 3.6 or 3.7? Thanks!

pierreca commented 5 years ago

@lupino3 we support Python 3.6 and 3.7 on all supported versions of raspbian through our new SDK which is available right now at https://github.com/azure/azure-iot-sdk-python-preview and will make it into this repo (and replace this wrapped C library) in the coming weeks.