Probleme d'import de module

Bonjour,
J’ai un soucis lorsque je lance le démon de modbus RTU, il me dit qu’il ne trouve pas le module.
J’ai vérifié que le module en question soit bien installé, de ce coté c’est OK.

Traceback (most recent call last):
File "/var/www/html/plugins/modbusrtu/resources/modbusrtud/modbusrtud.py", line 21, in <module>
import minimalmodbus
ImportError: No module named minimalmodbus
[2020-05-29 13:52:26][ERROR] : Impossible de lancer le démon modbusrtu

lorsque j’essaye d’installer minimalmodbus il me dit qu’il est déjà ok

root@jeedom:/home/yan# pip3 install -U minimalmodbus
Requirement already up-to-date: minimalmodbus in /usr/local/lib/python3.7/dist-packages (1.0.2)
Requirement already satisfied, skipping upgrade: pyserial>=3.0 in /usr/local/lib/python3.7/dist-packages (from minimalmodbus) (3.4)
root@jeedom:/home/yan#

Ca fait deux jours que je tourne en rond avec ca.

l’installation des dépendances à l’air plus que correcte:


********************************************************
*             Installation des dépendances             *
********************************************************
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 https://deb.nodesource.com/node_12.x buster InRelease
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
libffi-dev is already the newest version (3.2.1-9).
python-dev is already the newest version (2.7.16-1).
python-pip is already the newest version (18.1-5).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
python-serial is already the newest version (3.4-4).
python-pyudev is already the newest version (0.21.0-1).
python-requests is already the newest version (2.21.0-1).
libudev-dev is already the newest version (241-7~deb10u4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
Package 'python-cffi' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Requirement already up-to-date: cffi in /usr/local/lib/python3.7/dist-packages (1.14.0)
Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi) (2.20)
Requirement already up-to-date: cryptography in /usr/local/lib/python3.7/dist-packages (2.9.2)
Requirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.8 in /usr/local/lib/python3.7/dist-packages (from cryptography) (1.14.0)
Requirement already satisfied, skipping upgrade: six>=1.4.1 in /usr/lib/python3/dist-packages (from cryptography) (1.12.0)
Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi!=1.11.3,>=1.8->cryptography) (2.20)
Requirement already up-to-date: minimalmodbus in /usr/local/lib/python3.7/dist-packages (1.0.2)
Requirement already satisfied, skipping upgrade: pyserial>=3.0 in /usr/local/lib/python3.7/dist-packages (from minimalmodbus) (3.4)
Requirement already up-to-date: paramiko in /usr/local/lib/python3.7/dist-packages (2.7.1)
Requirement already satisfied, skipping upgrade: cryptography>=2.5 in /usr/local/lib/python3.7/dist-packages (from paramiko) (2.9.2)
Requirement already satisfied, skipping upgrade: pynacl>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from paramiko) (1.4.0)
Requirement already satisfied, skipping upgrade: bcrypt>=3.1.3 in /usr/local/lib/python3.7/dist-packages (from paramiko) (3.1.7)
Requirement already satisfied, skipping upgrade: six>=1.4.1 in /usr/lib/python3/dist-packages (from cryptography>=2.5->paramiko) (1.12.0)
Requirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.8 in /usr/local/lib/python3.7/dist-packages (from cryptography>=2.5->paramiko) (1.14.0)
Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.5->paramiko) (2.20)
Requirement already up-to-date: utils in /usr/local/lib/python3.7/dist-packages (1.0.1)
********************************************************
*             Installation terminée                    *
********************************************************

Peut’etre un pb de version de python 2 ou 3 et de path

1 console ssh
tape python
tu devrait avoir une version 2.xx de python
au prompt tape >>> import minimalmodbus
copie d’ecran du résultat
crtl+d pour quitter ce python2

tape maintenant python3
tu devrait avoir une version 3.xx de python
au prompt tape >>> import minimalmodbus
copie d’écran du résultat

c’est juste pour voir si cette lib existe dans l’u ou l’autre des python

si ce n’est pas le cas pour les 2

essai de l’installer

pour un python3

sudo pip3 install -U minimalmodbus

pour un python2

sudo pip install -U minimalmodbus
root@jeedom:/home/yan# python
Python 2.7.16 (default, Oct 10 2019, 22:02:15)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import minimalmodbus
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named minimalmodbus
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>>
root@jeedom:/home/yan# python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import minimalmodbus
>>>


Il semblerait qu’il soit installé en python 3 seulement

root@jeedom:/home/yan# sudo pip install -U minimalmodbus
Requirement already up-to-date: minimalmodbus in /usr/local/lib/python3.7/dist-packages (1.0.2)
Requirement already satisfied, skipping upgrade: pyserial>=3.0 in /usr/local/lib/python3.7/dist-packages (from minimalmodbus) (3.4)
root@jeedom:/home/yan#

J’ai donc tenté l’installation pour Python 2 mais je l’avais déja.

ok installe la dans python2 avec le pip sans le 3

sudo pip install -U minimalmodbus

c’est là que je pige pas! il me dit que je l’ai déjà !! Ce ne doit pas etre écris de la même maniere!
j’ai même essayé avec MinimalModus, sans résultat

root@jeedom:/home/yan# sudo pip install -U minimalmodbus
Requirement already up-to-date: minimalmodbus in /usr/local/lib/python3.7/dist-packages (1.0.2)
Requirement already satisfied, skipping upgrade: pyserial>=3.0 in /usr/local/lib/python3.7/dist-packages (from minimalmodbus) (3.4)
root@jeedom:/home/yan#

Regarde que les pip soient bien dans leur versions respective de python 2 et 3

pi@covid:~$ pip3 --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
pi@covid:~$ pip --version
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)
pi@covid:~$ 

Je n’ai effectivement pas le même résultat.

root@jeedom:/home/yan# pip3 --version
pip 20.1.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
root@jeedom:/home/yan# pip --version
pip 20.1.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
root@jeedom:/home/yan#

c’est ca qui est pas bon ton pip pointe dans la version 3 il devrait être en version2

je t’avoue que je suis un peu largé maintenant. de ce que je comprend le PIP c’est l’outil d’installation. mais comment se gère t’il stp?
En tout cas merci pour ton aide précieuse!

il gere l’installation des libraries python qui doivent aller dans le 2 ou le 3
essai de réinstaller le pip

sudo python get-pip.py

il faut vraiment qu’a la final tu a :

pi@covid:~$ pip --version
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)

je crois qu’on touche le problème du bout du doigt:

root@jeedom:/home/yan# sudo python get-pip.py
python: can't open file 'get-pip.py': [Errno 2] No such file or directory
root@jeedom:/home/yan#

essai alors :

sudo apt install python-pip

C’est dingue ce truc!

root@jeedom:/home/yan# sudo apt install python-pip
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
python-pip est déjà la version la plus récente (18.1-5).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
root@jeedom:/home/yan#

sudo apt remove python-pip
puis
sudo apt install python-pip

Remove:

root@jeedom:/home/yan# sudo apt remove python-pip
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  libpython-all-dev python-all python-all-dev python-configparser
  python-entrypoints python-keyring python-keyrings.alt python-secretstorage
  python-wheel python-xdg
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
  python-pip
0 mis à jour, 0 nouvellement installés, 1 à enlever et 0 non mis à jour.
Après cette opération, 808 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 132401 fichiers et répertoires déjà installés.)
Suppression de python-pip (18.1-5) ...
Traitement des actions différées (« triggers ») pour man-db (2.8.5-2) ...
root@jeedom:/home/yan#

Réinstall:

root@jeedom:/home/yan# sudo apt install python-pipsudo apt install python-pip
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet python-pipsudo
E: Impossible de trouver le paquet install
root@jeedom:/home/yan#

Pourquoi il cherche sur la clé USB qui m’a servit à faire l’installation alors que j’ai bien vu le moment où il « nettoie » source.list à la fin de l’installation?

le contenu de sources.list via l’éditeur nano:


#

# deb cdrom:[Debian GNU/Linux 10.4.0 _Buster_ - Official amd64 xfce-CD Binary-1$

# deb cdrom:[Debian GNU/Linux 10.4.0 _Buster_ - Official amd64 xfce-CD Binary-1$

deb http://deb.debian.org/debian/ buster main non-free
deb-src http://deb.debian.org/debian/ buster main non-free

deb http://security.debian.org/debian-security buster/updates main non-free
deb-src http://security.debian.org/debian-security buster/updates main non-free

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates main non-free
deb-src http://deb.debian.org/debian/ buster-updates main non-free

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

Les premières lignes sont bien commentées, non?

Tu a fait ça entre les 2

Bingo!! ca a fonctionné direct apres!! merci Olive! !