在Raspberry Pi上使用Azure-iothub-device-client的问题

问题描述 投票:1回答:1

我试图通过运行示例代码:“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上才会出现此错误。

python azure raspberry-pi azure-iot-hub
1个回答
0
投票

你好,

正如this great post所说

第一个solutine

  • 你在运行raspbian stretch还是jessie?你现在可能想伸展。这是最新稳定的,也是我们正在测试的那个
  • libboost-python1.62.0包安装?如果没有,你可以安装: apt-get install libboost-python1.62.0

第二解决方案

具有相同问题的链接中的用户[ko5win]确认带有拉伸的新莓和正确版本的libboost解决了pip版本问题

另一个用户[sergiomfsilva]提供了另一种程序:

环境 使用的OS和版本

  • Linux raspberrypi 4.14.30-v7 +#1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU / Linux
  • 使用Python运行时:Python 3.5.3
  • 使用的SDK版本:1.3.1

使用的解决方法步骤

获取图像并准备完成工作:

  • 得到最后的Raspbian Lite图像
  • 用于Raspberry Pi3的flash microSD卡
  • 用覆盆子pi启动
  • 用pi用户登录
  • 发出命令 sudo su
  • 转到根文件夹 cd /root

更新系统并进行一些时间检查

  • 做下一个命令: apt-get update && apt-get upgrade apt-get install ntp
  • 使用命令检查RPI日期 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:无法打开共享对象文件:没有这样的文件或目录

构建新库并应用它

  • 转到linux的构建文件夹 cd /root/azure-iot-sdk-python/build_all/linux
  • 运行安装程序 ./setup.sh --python-version 3.5
  • 用已报告的gnutls dev替换openssl dev,就像解决内存卷曲问题的解决方案一样 apt remove libcurl4-openssl-dev apt install libcurl4-gnutls-dev
  • 建立图书馆 ./build.sh --build-python 3.5
  • 转到根文件夹cd /root
  • 将创建的库移动到python iothub_client路径 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版本

© www.soinside.com 2019 - 2024. All rights reserved.