web-dev-qa-db-ja.com

インポートエラー:paho.mqtt.clientが見つかりません

pythonとphpを含むdockerを作成しています。別のdockerにあるMQTTブローカーに接続するためのpythonスクリプトを作成しています。

私の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のインストールに関するエラーは表示されません。誰かがこれをガイドできれば素晴らしいことです。

7
Sid411

私は問題を発見したと思う、

Python3をインストールしましたが、何らかの理由で、インタープリターはデフォルトでLinuxのバージョン2.7になります。

代わりにpip3 install paho-mqtt python-etcdを使用してみてください。

または機能しない場合は、Python2.7site-packagesフォルダーからPython3site-packagesフォルダーにpahoフォルダーをそのままコピーして貼り付けることができます。 paho-mqtt 1.2 for Python2は、Meld diffツールを使用して、paho-mqtt 1.2 for Python3とまったく同じであることを確認しました。 pip listを直接コピーして貼り付けると、コピーしたパッケージが表示されないことに注意してください。

site-packagesは通常、システムlibフォルダー内にあります。 Pythonのインストール方法によって異なります。私の場合、すべてが$HOME/.pyenvフォルダー内にあります。

Python2には独自のsite-packagesフォルダーがあり、Python3には独自のsite-packagesフォルダーがあり、Pythonがパッケージを検索することに注意してください。 DebianベースのLinuxディストリビューションを使用している場合は、dist-packagesフォルダー内も確認して、探しているパッケージが見つかるかどうかを確認してください。

15
Eddie

Paho libをインストールしてみてください:

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

コードを取得したら、リポジトリからもインストールできます。

cd paho.mqtt.python
python setup.py install
0