GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Dépendance manquante dans Pip3 ?

J'ai installé le dernier Ubuntu Gnome aujourd'hui et je configurais ma machine pour des travaux liés à la science des données. Lorsque j'ai essayé d'installer tensorflow-gpu, j'ai rencontré un plantage de pip3 :

[email protected]:~/Desktop$ pip3
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
    __import__(vendored_name, globals(), locals(), level=0)
ImportError: No module named 'pip._vendor.pkg_resources'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 13, in <module>
    from pip.exceptions import InstallationError, CommandError, PipError
  File "/usr/lib/python3/dist-packages/pip/exceptions.py", line 6, in <module>
    from pip._vendor.six import iteritems
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 75, in <module>
    vendored("pkg_resources")
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
    __import__(modulename, globals(), locals(), level=0)
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2927, in <module>
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2913, in _call_aside
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2952, in _initialize_master_working_set
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 956, in subscribe
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2952, in <lambda>
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2515, in activate
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2097, in declare_namespace
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2047, in _handle_ns
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2066, in _rebuild_mod_path
AttributeError: '_NamespacePath' object has no attribute 'sort'

J'ai essayé de purger python3-pip et de le réinstaller, cela ne fonctionne toujours pas. J'obtiens ce qui précède simplement en exécutant pip3 dans le terminal et en appuyant sur ENTER.

Des idées ?

EDIT :De plus, les deux chemins sont différents pour pip et pip3 :

[email protected]:~$ which pip
/home/me/.local/bin/pip
[email protected]:~$ which pip3
/usr/bin/pip3

Réponse acceptée :

J'ai résolu ce problème en créant un nouvel environnement virtuel

  1. Un nouvel environnement virtuel peut être créé en :

    python3 -m venv /tmp/newvenv
    
  2. Ensuite, j'ai vérifié si pip fonctionne correctement dans le nouvel environnement virtuel :

    cd /tmp/newvenv/bin
    ./pip3
    

Cela m'a donné le message normal comme suit :

Utilisation :
pip [options]

Commandes :

install Installer les packages.

télécharger Télécharger des packages.

Cependant, pip3 a toujours échoué.

    pip3

Cela m'a toujours donné le message d'erreur.

Ensuite, j'ai décidé de copier les versions de travail de pip dans le répertoire personnel. Pour les deux étapes ci-dessous (#3 et #4), vous pouvez conserver des copies de sauvegarde.

  1. J'ai écrasé pip et pip-9.0.1.dist-info de l'environnement virtuel vers le répertoire personnel :

    cp -r /tmp/newvenv/lib/python3.5/site-packages/pip ~/.local/lib/python3.5/site-packages/
    cp -r /tmp/newvenv/lib/python3.5/site-packages/pip-9.0.1.dist-info ~/.local/lib/python3.5/site-packages/
    
  2. J'ai également copié les deux fichiers suivants :

    cp /tmp/newvenv/lib/python3.5/site-packages/pkg_resources/__init__.py ~/.local/lib/python3.5/site-packages/pkg_resources/ 
    cp /tmp/newvenv/lib/python3.5/site-packages/pkg_resources/py31compat.py ~/.local/lib/python3.5/site-packages/pkg_resources/
    

Après ces étapes, pip3 fonctionne correctement dans mon cas.

En relation :Comment restaurer les référentiels par défaut ?
Ubuntu
  1. Boîte occupée lire le fichier ligne par ligne ?

  2. Impossible de trouver le fichier à patcher sur la ligne d'entrée 3 ?

  3. Échec ou dépendance manquante de l'erreur glibc-common

  4. unix - nombre de colonnes dans le fichier

  5. grep sans afficher le chemin/fichier :ligne

Comment lire des fichiers ligne par ligne dans Bash

Comment lire un fichier ligne par ligne dans Bash

Commenter/décommenter une ligne dans le fichier de configuration d'Ubuntu

Dépendance Libxmlrpc-c3 manquante lors de l'installation de Boxee ?

La restauration des sauvegardes échoue Ubuntu 16.04 ?

Association de fichiers à une application non répertoriée ?