156 votes

PEP a éclaté. Comment corriger l’erreur DistributionNotFound ?

Chaque fois que j’essaie d’utiliser pip j’obtiens une erreur. Pour exampple :

Je suis tenté de passer la valeur du pip == 0.8.2... mais je ne pense pas faire face aux conséquences du « piratage » vers le haut de mon installation... Je suis sous python 2.7 et pip est à la version 0.8.2.

256voto

NewPtone Points 1551

Je trouve ce problème dans mon MacBook, c’est parce que comme @Stephan dit, j’ai utiliser easy_install pour installer pip et la mixtrue de ces deux paquet py gérer outils conduisent à la pkg_resources. Problème de DistributionNotFound. La détermination est :

N’oubliez pas qu’utiliser un de l’outil ci-dessus pour gérer vos packages Py.

31voto

Stephan Points 1377

J’ai remplacé 0.8.1 en 0.8.2 dans /usr/local/bin/pip et tout a fonctionné à nouveau.

J’ai installé PEP par easy_install qui m’a probablement causé ce mal de tête. Je pense que c’est comment vous devriez le faire aujourd'hui...

7voto

Dave Lancea Points 917

Si vous êtes sur CentOS, assurez-vous que vous avez le paquet YUM « python-setuptools » installé

Il fixe pour moi.

6voto

Piotr Dobrogost Points 14412

La racine du problème sont souvent dépassés scripts dans l' bin (Linux) ou Scripts (Windows) sous-répertoire. Je vais vous expliquer cela en utilisant problème que j'ai rencontré moi-même comme un exemple.

J'ai eu virtualenv version 1.10 installé dans mon site-packages (le fait que c'est à l'utilisateur du site-packages pas sytem site-packages est pas pertinente ici)

pdobrogost@host:~$ which virtualenv
/home/users/pdobrogost/.local/bin/virtualenv
pdobrogost@host:~$ virtualenv --version
1.10

Après j'ai mis à niveau vers la version 1.11 j'ai eu l'erreur suivante:

pdobrogost@host:~$ virtualenv --version  
Traceback (most recent call last):   
  File "/home/users/pdobrogost/.local/bin/virtualenv", line 5, in <module>
    from pkg_resources import load_entry_point   
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2701, in <module>
    return self.__dep_map   
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 572, in resolve
    if insert: 
pkg_resources.DistributionNotFound: virtualenv==1.10

Fichier /home/users/pdobrogost/.local/bin/virtualenv mentionné dans le message d'erreur ressemble à ceci:

#!/opt/python/2.7.5/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==1.10','console_scripts','virtualenv'
__requires__ = 'virtualenv==1.10'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('virtualenv==1.10', 'console_scripts', 'virtualenv')()
    ) 

Là, nous voyons qu' virtualenv script n'a pas été mis à jour et nécessite toujours déjà installé la version 1.10 de virtualenv.
Maintenant, la réinstallation de virtualenv comme ceci

pdobrogost@host:~$ pip install --user --upgrade virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py27/v/virtualenv/virtualenv-1.11.1-py27-none-any.whl#md5=265770b61de41d34d2e9fdfddcdf034c
  Using download cache from /home/users/pdobrogost/.pip_download_cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fpy27%2Fv%2Fvirtualenv%2Fvirtualenv-1.11.1-py27-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...

n'aide pas (ni pip install --user --upgrade --force-reinstall virtualenv) en raison de script /home/users/pdobrogost/.local/bin/virtualenv reste inchangé.

La seule façon que je pouvais résoudre ce fut en supprimant manuellement les virtualenv* scripts à partir de l' /home/users/pdobrogost/.local/bin/ le dossier et l'installation de virtualenv de nouveau. Après cela, nouvellement créées, les scripts, reportez-vous à la bonne version du paquet:

pdobrogost@host:~$ virtualenv --version
1.11

2voto

Joe Johnson Points 1025

Sur Mac OS X (MBP), ce qui suit (extrait d’une autre réponse trouvée dans les présentes) résolu mes problèmes :

Clairement la cause ici est d’avoir une méthode secondaire d’installer python (dans mon cas Homebrew). J’espère que les personnes responsables pour le script de pip peuvent remédier à ce problème depuis ses 2 ans toujours d’actualité après première signalés sur Stack Overflow.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X