Import Error: paho.mqtt.client not found

Import Error: paho.mqtt.client not found

我正在创建一个包含 python 和 php 的 docker。我正在编写 python 脚本来连接驻留在另一个 docker.

中的 MQTT 代理

在我的 docker 文件中,我确保使用以下命令安装 paho 客户端:

RUN apt-get install -y python3-dev 
RUN apt-get install -y libffi-dev 
RUN apt-get install -y libssl-dev

ADD https://bootstrap.pypa.io/get-pip.py /tmp/get-pip.py 
RUN cat /tmp/get-pip.py | python3 
RUN pip install paho-mqtt 
RUN pip install python-etcd

然而,当我 运行 python 脚本时,出现以下错误:

ImportError: No module named paho.mqtt.client

docker 安装没有显示任何关于 paho-mqtt 安装的错误。 如果有人可以对此进行指导,那就太好了。

我想我找到问题了,

您已经安装了 Python3 但由于某些原因,解释器在 Linux.

中默认为 2.7 版

请尝试使用 pip3 install paho-mqtt python-etcd

或者如果它不起作用,您可以直接将 paho 文件夹从 Python2.7 site-packages 文件夹复制并粘贴到 Python3 site-packages文件夹。我刚刚使用 Meld diff 工具验证了 Python2paho-mqtt 1.2Python3paho-mqtt 1.2 完全相同。请注意,当您直接复制粘贴时pip list不会显示您复制的包。

site-packages 通常在您的系统 lib 文件夹中。这取决于 Python 的安装方式。在我的例子中,所有内容都在 $HOME/.pyenv 文件夹中。

记住 Python2 有自己的 site-packages 文件夹,Python3 有自己的 site-packages 文件夹,Python 在其中搜索包。有时,如果您使用的是基于 Debian 的 Linux 发行版,请确保同时检查 dist-packages 文件夹,看看是否可以找到您正在寻找的软件包。

您可以尝试安装 Paho 库:

git clone https://github.com/eclipse/paho.mqtt.python

获得代码后,也可以从您的存储库安装它:

cd paho.mqtt.python
python setup.py install