我试图通过运行示例代码:“SimulatedDevice.py”来使用Python SDK作为IoT Hub,但代码在3个不同的raspbian设备以及我的PyCharm环境中打破了相同的异常。在尝试在我的Raspberry Pi上运行SimulatedDevice.py示例时,代码总是打破:
“ImportError:libboost_python-py27.so.1.62.0:无法打开共享对象文件:没有这样的文件或目录”
初始错误:“import iothub_client”
我有pip安装了azure-iothub-device-client以及确认版本是python2.7甚至尝试重新安装python。这很奇怪,因为当我在我的Windows CMD上运行完全相同的文件时,SimulatedDevice.py示例代码函数很好,它只在Python终端和Raspberry Pi上才会出现此错误。
你好,
正如this great post所说
第一个solutine
libboost-python1.62.0
包安装?如果没有,你可以安装:
apt-get install libboost-python1.62.0
第二解决方案
具有相同问题的链接中的用户[ko5win]确认带有拉伸的新莓和正确版本的libboost解决了pip版本问题
另一个用户[sergiomfsilva]提供了另一种程序:
环境 使用的OS和版本
使用的解决方法步骤
获取图像并准备完成工作:
sudo su
cd /root
更新系统并进行一些时间检查
apt-get update && apt-get upgrade
apt-get install ntp
date
日期之后确定所有准备好了
注意:如果找到日期问题,请配置ntp.conf文件
安装所需的包并查看报告的错误
安装所需的包
apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev python3-pip
SDK克隆
git clone --recursive https://github.com/Azure/azure-iot-sdk-python.git
使用pip3安装设备客户端软件包
pip3 install azure-iothub-device-client
转到示例文件夹
cd azure-iot-sdk-python/device/samples/
运行示例代码
python3 iothub_client_sample.py
错误必须相同:
Traceback(最近一次调用最后一次): 文件“iothub_client_sample.py”,第10行,in import iothub_client文件“/usr/local/lib/python3.5/dist-packages/iothub_client/init.py”,第1行,in 来自.iothub_client import * ImportError:libboost_python-py34.so.1.55.0:无法打开共享对象文件:没有这样的文件或目录
构建新库并应用它
cd /root/azure-iot-sdk-python/build_all/linux
./setup.sh --python-version 3.5
apt remove libcurl4-openssl-dev
apt install libcurl4-gnutls-dev
./build.sh --build-python 3.5
cd /root
mv azure-iot-sdk-python/device/samples/iothub_client.so /usr/local/lib/python3.5/dist-packages/iothub_client/iothub_client.so
cd azure-iot-sdk-python/device/samples/
python3 iothub_client_sample.py
这解决了发现的问题,并在树莓中起作用。这并没有解决这个问题,因为它与pip包有关。解决一个新的pip包,更新了库和python版本