Incohérence entre les versions Python et PIP

Bonjour,

En lisant le sujet suivant https://community.jeedom.com/t/probleme-installation-dependances/20877/25?page=2 , j’ai cru comprendre qu’il faut qu’il y ai une correspondance entre les version de Python et les version de PIP

Je suis sur un Raspberry Pi4 :

pi@raspberrypi:~ $ arch
armv7l
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster

en l’occurrence, lorsque je regarde les différentes versions que j’ai, j’ai l’impression d’avoir une incohérence sur le version de PIP qui pointe vers python 3.7

pi@raspberrypi:~ $ python --version
Python 2.7.16
pi@raspberrypi:~ $ python2 --version
Python 2.7.16
pi@raspberrypi:~ $ python3 --version
Python 3.7.3
pi@raspberrypi:~ $ pip --version
pip 22.3.1 from /home/pi/.local/lib/python3.7/site-packages/pip (python 3.7)
pi@raspberrypi:~ $ pip2 --version
pip 20.3.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
pi@raspberrypi:~ $ pip3 --version
pip 22.3.1 from /home/pi/.local/lib/python3.7/site-packages/pip (python 3.7)

Quelqu’un parmi vous peut-il me dire s’il y a effectivement une incohérence et comment remettre cela d’aplomb car je n’ai pas réussis à trouver la réponse sur le forum ?

Merci d’avance

Cela devrait être python 2.7 pour moi.

Antoine

1 « J'aime »

Salut,

J’ai envie de te dire d’attendre de faire face à un problème à ce niveau avant d’aller tout casser par toi-même.

Si il n’y a pas de problème alors il n’y a rien à toucher surtout ! Sinon il faut décrire le souci.

Oui mais c’est surprenant que python et pip ne soient pas raccord.

Antoine

1 « J'aime »

Bonjour,
En effet c’est incohérent :slight_smile: peut être une mauvaise installation / mise à jour (il y a tellement de façons différentes d’installer un package…)
Par curiosité, tu peux tester ces commandes: whereis pip ==> normalement pip est dans /usr/bin
cat /ust/bin/pip
Je m’attendais à un simple lien symbolique vers pip2 ou pip3 mais non chez moi c’est le script:

#!/usr/bin/python
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

voila chez moi /usr/bin/pip et pip2 sont strictement identique, et pour pip3 seule la 1ère ligne change (python3 à la place de python).

idem pour moi, lorsque je fais un cat /usr/bin/pip et cat /usr/bin/pip2

Par contre, je n’ai pas de pip3 dans /usr/bin

Faut surtout pas aller toucher des fichiers manuellement

Et oui si pip ne pointe pas sur python 2 cela cause des problèmes lors d’installation de dépendances pour les plugins sous python2. Il en reste de moins en moins mais cela arrive.

Cette commande devrait permettre de réinstaller et refaire le lien correctement.

python -m pip install --upgrade pip

Le lancement de cette commande fait bien référence à la version python 2.7 pour l’upgrade (certainement lié au fait qu’on invoque python, mais pour autant cela ne semble pas corriger le lien vers la version de pip qui est dans python 3.7 quand on fait pip --version

pi@raspberrypi:~ $ sudo python -m pip install --upgrade pip
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already up-to-date: pip in /usr/local/lib/python2.7/dist-packages (20.3.4)
pi@raspberrypi:~ $ pip --version
pip 22.3.1 from /home/pi/.local/lib/python3.7/site-packages/pip (python 3.7)
1 « J'aime »

Bonjour,

Et que donne la commande :

sudo pip --version

Bonjour à vous,

Je rejoins la discussion car je n’arrive pas à mettre mes packages Python 2 et 3 à jour.
Pour ma part, la dernière commande donne :

pip 22.3.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

Mon problème de mise à jour si jamais : Mise à jour Python 2 et 3

Bonne journée à vous.

Desinstallez pip et réinstallez.

Quel est le retour de cette commande:

whereis pip

il doit y avoir plusieurs versions cachées à plusieurs endroits du path du système, et la version 3 a pris la précédence sur l’autre…

effectivement je n’ai pas le même résultat entre pip --version et sudo pip --version et c’est correct avec la deuxième commande.
Je mets aussi le résultat du whereis pip et sudo whereis pip

pi@raspberrypi:~ $ pip --version
pip 22.3.1 from /home/pi/.local/lib/python3.7/site-packages/pip (python 3.7)
pi@raspberrypi:~ $ sudo pip --version
pip 20.3.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
pi@raspberrypi:~ $ whereis pip
pip: /usr/bin/pip /etc/pip.conf /usr/local/bin/pip3.7 /usr/local/bin/pip3.10 /usr/local/bin/pip2.7 /usr/local/bin/pip /home/pi/.local/bin/pip3.7 /home/pi/.local/bin/pip3.10 /home/pi/.local/bin/pip /usr/share/man/man1/pip.1.gz
pi@raspberrypi:~ $ sudo whereis pip
pip: /usr/bin/pip /etc/pip.conf /usr/local/bin/pip3.7 /usr/local/bin/pip3.10 /usr/local/bin/pip2.7 /usr/local/bin/pip /usr/share/man/man1/pip.1.gz
1 « J'aime »

À moins que, pour toi, la version de pip pour l’utilisateur pi soit importante, tu n’as pas de problème :wink:

à mon avis, sudo pip appelle /usr/bin/pip ou bien /usr/local/bin/pip, tandis que pip tout seul va chercher celui dans ton répertoire perso :
/home/pi/.local/bin/pip --version
Tant que les scripts d’installation utilisent sudo pip tout va bien :slight_smile:

Merci pour vos réponses

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.