You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian系统Python脚本报错:No module named 'azure.iot.hub'

解决Debian系统中Python找不到azure.iot.hub模块的问题

问题重现

在Le Potato(Debian系统)运行以下Python脚本时,抛出ModuleNotFoundError: No module named 'azure.iot.hub'错误,该脚本在Windows环境可正常运行:

import uuid
from azure.iot.hub import IoTHubRegistryManager
import MqttClient as mqttClient

CONNECTION_STRING = "HostName=(...)"
DEVICE_ID = "(...)"
registry_manager = IoTHubRegistryManager(CONNECTION_STRING)

def send_message(msg):
    props = {}
    props.update(messageId = str(uuid.uuid4()))
    props.update(contentType = "application/json")
    props.update()
    registry_manager.send_c2d_message(DEVICE_ID, msg, properties=props)


def on_message(mqttc, obj, msg):
    print("[" + msg.topic+"]: "+str(msg.payload))
    try:
        send_message(str(msg.payload))
    except Exception as e:
        print("An exception occurred:", str(e))

mqttClient.init(on_message=on_message)

已多次执行pip install azure-iot-hub、pip install azure-iot-device,甚至创建了与Windows版本完全一致的虚拟环境,但问题未解决。后续排查发现:

  • pip show azure-iot-hub显示包安装在/usr/local/lib/python3.9/dist-packages,且该目录在Python的sys.path中
  • /usr/local/lib/python3.9/dist-packages/azure/iot目录为空,不符合正常安装后的状态

解决方案

1. 彻底清理并重新安装依赖

目录为空说明包未正确完成安装,先清理现有安装痕迹再重新安装:

  • 卸载相关包:
    pip uninstall -y azure-iot-hub azure-iot-device
    
  • 清理pip缓存,避免使用损坏的缓存文件:
    pip cache purge
    
  • 用当前Python对应的pip重新安装(确保版本匹配):
    python -m pip install azure-iot-hub
    
  • 安装完成后检查目录内容:
    ls -l /usr/local/lib/python3.9/dist-packages/azure/iot/
    
    正常情况下应该能看到hub相关的子目录和文件。

2. 确认pip与Python版本匹配

系统中可能存在多个Python版本,导致pip安装的包对应到了其他Python环境。可通过以下命令验证:

  • 查看当前运行脚本的Python路径:
    which python
    
  • 查看pip对应的Python版本:
    pip --version
    

如果两者版本不一致,必须使用python -m pip替代直接调用pip,确保安装的包会被当前Python环境识别。

3. 查看安装过程的详细错误

如果重新安装后目录仍然为空,执行带详细日志的安装命令,排查具体失败原因:

python -m pip install azure-iot-hub -v

常见问题及处理:

  • 网络问题导致包下载不完整:切换稳定网络后重新安装
  • 系统依赖缺失(如编译所需的基础库):先安装系统依赖
    sudo apt-get update && sudo apt-get install -y libssl-dev python3-dev
    

4. 手动安装wheel包

如果自动安装持续失败,可手动下载适配arm架构的wheel包:

  1. 下载对应Python3.9、arm64/armhf架构的azure-iot-hub wheel文件
  2. 执行本地安装:
    python -m pip install ./azure_iot_hub-xxx-py3-none-any.whl
    

内容的提问来源于stack exchange,提问作者Jaime

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:01:34