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

时间:2017-01-05 08:24:12

标签: python docker mqtt paho

我正在创建一个包含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

对于paho-mqtt安装,docker安装不会显示任何错误。 如果有人可以指导这一点,那就太好了。

2 个答案:

答案 0 :(得分:9)

我想我已经找到了问题,

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

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

如果它不起作用,您可以将paho Python2.7文件夹中的site-packages文件夹复制并粘贴到Python3 site-packages文件夹中。我刚刚验证paho-mqtt 1.2的{​​{1}}与使用Python2差异工具的paho-mqtt 1.2的{​​{1}}完全相同。请注意,当您直接复制并粘贴Python3时,将不会显示您复制的包。

Meld通常位于系统pip list文件夹中。这取决于site-packages的安装方式。在我的情况下,一切都在lib文件夹中。

请记住Python拥有自己的$HOME/.pyenv文件夹,而Python2拥有自己的site-packages文件夹,其中Python3会搜索这些包。有时,如果您使用的是基于site-packages的Linux发行版,请务必在Python文件夹中查看是否可以找到您要查找的软件包。

答案 1 :(得分:0)

您可以尝试安装Paho lib:

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

有了代码后,也可以从存储库中安装它:

cd paho.mqtt.python
python setup.py install