Je crée un docker contenant python et php. J'écris un script python pour me connecter à un courtier MQTT résidant dans un autre docker.
Dans mon dockerfile, je m'assure d'installer le client paho en utilisant les commandes suivantes:
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
Cependant, lorsque j'exécute le script python, j'obtiens l'erreur suivante:
ImportError: No module named paho.mqtt.client
L'installation de docker ne montre aucune erreur en ce qui concerne l'installation de paho-mqtt. Ce sera formidable si quelqu'un peut vous guider à ce sujet.
Je pense avoir trouvé le problème,
Vous avez installé Python3
mais pour une raison quelconque, l'interpréteur utilise par défaut la version 2.7 sous Linux.
Essayez d'utiliser pip3 install paho-mqtt python-etcd
au lieu.
Si cela ne fonctionne pas, vous pouvez littéralement copier et coller le dossier paho
depuis votre Python2.7
site-packages
dossier dans votre Python3
site-packages
dossier. Je viens de vérifier paho-mqtt 1.2
pour Python2
est exactement le même que paho-mqtt 1.2
pour Python3
en utilisant un outil de diff Meld
diff. Veuillez noter que lorsque vous copiez et collez directement pip list
n'affichera pas le package que vous avez copié.
site-packages
se trouvent généralement dans le dossier lib
de votre système. Cela dépend de la façon dont Python
est installé. Dans mon cas, tout est à l'intérieur $HOME/.pyenv
dossier.
Rappelles toi Python2
a son propre site-packages
dossier et Python3
a son propre site-packages
dossier où Python
recherche les packages. Parfois, si vous utilisez une distribution Linux basée sur Debian
, assurez-vous de vérifier l'intérieur du dist-packages
également pour voir si vous pouvez trouver le package que vous recherchez.
Vous pouvez essayer d'installer Paho lib:
git clone https://github.com/Eclipse/paho.mqtt.python
Une fois que vous avez le code, il peut également être installé à partir de votre référentiel:
cd paho.mqtt.python
python setup.py install