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のインストールに関するエラーは表示されません。誰かがこれをガイドできれば素晴らしいことです。
私は問題を発見したと思う、
Python3
をインストールしましたが、何らかの理由で、インタープリターはデフォルトでLinuxのバージョン2.7になります。
代わりにpip3 install paho-mqtt python-etcd
を使用してみてください。
または機能しない場合は、Python2.7
site-packages
フォルダーからPython3
site-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
フォルダー内も確認して、探しているパッケージが見つかるかどうかを確認してください。
Paho libをインストールしてみてください:
git clone https://github.com/Eclipse/paho.mqtt.python
コードを取得したら、リポジトリからもインストールできます。
cd paho.mqtt.python
python setup.py install