导入错误:找不到paho.mqtt.client

我正在创build一个包含python和php的docker。 我正在编写一个python脚本来连接到驻留在另一个docker中的MQTT代理。

在我的dockerfile中,我确保使用以下命令来安装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安装的任何错误。 如果有人能指导,这将是非常好的。

我想我已经find了问题,

你已经安装了Python3但由于某种原因,解释器在Linux中默认为2.7版本。

尝试使用pip3 install paho-mqtt python-etcd来代替。

或者,如果它不起作用,你可以从你的Python2.7 site-packages文件夹中复制和粘贴paho文件夹到你的Python3 site-packages文件夹。 我刚刚validation了paho-mqtt 1.2 paho-mqtt 1.2与使用Meld diff工具的paho-mqtt 1.2 Python3 。 请注意,当您直接复制并粘贴pip list将不会显示您复制的软件包。

site-packages通常在您的系统lib文件夹。 这取决于如何安装Python 。 在我的情况下,一切都在$HOME/.pyenv文件夹内。

记得Python2有它自己的site-packages文件夹, Python3有它自己的site-packages文件夹,在Python文件夹中search包。 有时,如果您使用的是基于Debian的Linux发行版,请确保在dist-packages文件夹中查看是否可以find您要查找的软件包。