gpt4 book ai didi

python - 在 Raspberry Pi 上使用 Azure-iothub-device-client 时出现问题

转载 作者:行者123 更新时间:2023-12-03 04:16:48 26 4
gpt4 key购买 nike

我尝试通过运行示例代码“SimulatedDevice.py”来使用 IoT 中心的 Python SDK,但代码在 3 个不同的 raspbian 设备以及我的 PyCharm 环境上因相同的异常而中断。在尝试在我的 Raspberry Pi 上运行 SimulatedDevice.py 示例时,代码总是会中断:

“导入错误:libboost_python-py27.so.1.62.0:无法打开共享对象文件:没有这样的文件或目录”

初始错误:“导入 iothub_client”

我已经 pip 安装了 azure-iothub-device-client 并确认版本是 python2.7,甚至尝试重新安装 python。这很奇怪,因为当我在 Windows CMD 上运行完全相同的文件时,SimulatedDevice.py 示例代码运行良好,只有在 Python 终端和 Raspberry Pi 上我才会收到此错误。

最佳答案

正如 this great post 中所述

第一个解决方案

  • 你运行的是 raspbianstretch 还是 jessie?你现在可能想要拉伸(stretch)一下。这是最新的稳定版本,也是我们正在测试的版本
  • libboost-python1.62.0软件包已安装?如果没有,您可以使用以下命令安装:
    apt-get install libboost-python1.62.0

第二个解决方案

该链接中具有相同问题的用户 [ko5win] 确认,具有拉伸(stretch)功能的新鲜树莓派和正确版本的 libboost 解决了 pip 版本问题

另一位用户 [sergiomfsilva] 给出了替代程序:

环境

使用的操作系统和版本

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

使用的解决方法步骤

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

  • 获取最后一个 Raspbian Lite 镜像
  • 适用于 Raspberry Pi3 的闪存 microSD 卡
  • 使用树莓派启动
  • 使用 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 (most recent call last):
File"iothub_client_sample.py", line 10, in
importiothub_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 objectfile: No such file or directory

构建新库并应用

  • 转到 Linux 的构建文件夹
    cd /root/azure-iot-sdk-python/build_all/linux
  • 运行设置
    ./setup.sh --python-version 3.5
  • 将 openssl dev 替换为 gnutls dev 已报告的类似 curl 内存不足问题的解决方案
    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版本

关于python - 在 Raspberry Pi 上使用 Azure-iothub-device-client 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52232205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com