5
votes

Mettre à niveau vers Ubuntu 20.04 tué pip

J'ai mis à niveau vers Ubuntu 20.04 à partir de 19.10 et maintenant je ne peux plus utiliser pip.

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/zeno/Desktop/tetris/.tetris/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Python est installé:

zeno:~/Desktop/tetris$ python3 -m venv .tetris

mais si j'essaye d'insatll pip, j'obtiens ceci:

(.tetris) zeno:~/Desktop/tetris$ pip3
Traceback (most recent call last):
  File "/home/zeno/Desktop/tetris/.tetris/bin/pip3", line 6, in <module>
    from pip._internal import main
ModuleNotFoundError: No module named 'pip'

Je suis perdu. Merci pour toute aide

Mise à jour

J'utilise venv pour créer des environnements virtuels. Quand aucun venv n'est activé, je peux utiliser pip3:

zeno:~/Desktop/tetris$ pip3 -V
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

mais si j'active un venv, ça ne marche pas:

    zeno:~/Desktop/tetris$ sudo apt install python3-pip
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    python3-pip is already the newest version (20.0.2-5ubuntu1).
    The following packages were automatically installed and are no longer required:
     dh-python elpa-async enchant gedit-plugin-zeitgeist gir1.2-mutter-5
     gnome-software-common libappstream-glib8 libapt-pkg5.90
     libboost-date-time1.67.0 libboost-iostreams1.67.0 libbrlapi0.6
     libcodec2-0.8.1 libcroco3 libdns-export1104 libdns1104 libdvdread4
     libegl1-mesa libenchant1c2a libept1.5.90 libevent-2.1-6 libexiv2-14
     libfprint0 libgeoip1 libgit2-27 libglvnd-core-dev libgnome-desktop-3-18
     libgspell-1-1 libgutenprint-common libgutenprint9 libgweather-3-15 libicu63
     libiptc0 libisc-export1100 libisc1100 libisc1105 libisl21 liblivemedia64
     liblouis17 liblwres161 libmicrodns0 libmozjs-60-0 libmutter-5-0 libmysofa0
     libnettle6 liboauth0 libperl5.28 libplymouth4 libpoppler90
     libpython3.7-minimal libqpdf21 libsnmp30 libusbmuxd4 libx11-xcb-dev
     libx265-176 libxcb-dri2-0-dev libxcb-dri3-dev libxcb-shape0-dev
     libxcb-sync-dev libxcb-xfixes0-dev libxshmfence-dev libzeitgeist-2.0-0
     perl-modules-5.28 printer-driver-gutenprint python-gobject-2
     python3-asn1crypto python3-pypdf2 python3.7-minimal ubuntu-system-service
     x11proto-composite-dev x11proto-fixes-dev
   Use 'sudo apt autoremove' to remove them.
   0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Merci pour vos suggestions et votre aide continue.

Mise à jour

J'ai essayé de supprimer le venv et d'en créer un nouveau, mais il semble que j'ai besoin de pip pour le faire:

zeno:~$ python3 --version
Python 3.8.2

donne:

zeno:~$ pip --version

Command 'pip' not found, but there are 18 similar ones.


5 commentaires

S'appelle-t-il pip3?


Essayez sudo apt install python-is-python3 . Cela devrait faire pointer python et pip vers python3 et pip3 respectivement


Merci pour vos suggestions, j'ai mis à jour ma question.


Supprimez l'ancien env et créez-en un nouveau, cela pourrait faire le travail


Merci, j'ai essayé ceci, ma question est mise à jour.


4 Réponses :


4
votes

Parfois, après la mise à niveau du système d'exploitation, vous devez réinstaller les packages. Essayer:

sudo apt install --reinstall python3-pip


1 commentaires

Merci de répondre. Cela n'a pas fonctionné, mais j'ai mis à jour ma question.



0
votes

J'ai dû purger python3-venv et le réinstaller:

zeno:~$ sudo apt install python3-venv

puis

zeno:~$ sudo apt purge python3-venv

Merci a tous


0 commentaires

0
votes

La solution qui a le mieux fonctionné pour moi a été donnée par dobairoland sur le github esp-idf (numéro 4474 ), comme indiqué dans la documentation Espressif :

wget https://bootstrap.pypa.io/get-pip.py
sudo python2.7 get-pip.py

Alternative (1): Au début, j'ai pu contourner ce problème avec un alias pour un script d'installation bash tiers codé en dur avec pip (aucune des installations / réinstallations mentionnées précédemment ne fonctionnait pour moi) - donc cela pourrait être une option aussi:

if [ "$(cat /etc/os-release | grep VERSION_ID)" == 'VERSION_ID="20.04"' ]; then
 alias pip="pip3"
else 
  echo "no pip alias"
fi

ceci (option certes moins que gracieuse) pourrait être utile dans les scripts:

sudo apt-get install python3-pip
alias pip="pip3"

Alternative (2) Il y a aussi ce hack qui a fonctionné techniquement pour moi, mais ce n'est probablement pas une bonne idée de forcer un logiciel obsolète sur un système:

sudo apt-get install python3 python3-pip python3-setuptools

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10


0 commentaires

0
votes

Le moyen le plus simple que j'ai trouvé était simplement de supprimer le dossier de l'environnement virtuel, de le recréer et de réinstaller les dépendances avec pip qui était à nouveau disponible :)


0 commentaires