pip rotto. come correggere l'errore DistributionNotFound?


146

Ogni volta che provo ad usare pip ricevo un errore. Per esempio:

$ sudo pip install gevent-websocket

Traceback (most recent call last):  
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2675, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==0.8.1

Sono tentato di cambiare il valore in pip == 0.8.2 .. ma non mi sento di affrontare le conseguenze del 'hacking' sulla mia installazione ... Sto eseguendo Python 2.7 e pip è alla versione 0.8.2.


Molto se il dolore qui. La semplice soluzione generica è scaricare il pip installato da: https://bootstrap.pypa.io/get-pip.py e quindi eseguire quel file (usando python). Le altre correzioni sono molto dipendenti dal sistema e generalmente disordinate e i suggerimenti di seguito spesso non funzionano (in base alla mia esperienza su due diversi figli del sistema)
GregD

Risposte:


253

Trovo questo problema nel mio MacBook, il motivo è perché come ha detto @Stephan, utilizzo easy_install l'installazione di pip e la combinazione di entrambi gli strumenti di gestione dei pacchetti py ha portato al pkg_resources.DistributionNotFoundproblema. La risoluzione è:

easy_install --upgrade pip

Ricorda: usa uno degli strumenti sopra per gestire i tuoi pacchetti Py.


55
Ah, questo mi dà solo l'errore:pkg_resources.DistributionNotFound: distribute==0.6.36
Timmmm,

2
Funziona alla grande anche su Mac OS X 10.9. Grazie!
Anton Babenko,

2
Potresti scoprire che a) devi eseguire sudo easy_install - aggiornare pip eb) potresti quindi ricevere errori sulla ruota quando usi pip. A quel punto sguardo a questo: stackoverflow.com/questions/20905350/...
mchicago

@PiotrDobrogost Non sono d'accordo: l'articolo che hai collegato riguarda l'utilizzo di virtualenv, altrimenti hai pacchetti pazzeschi e potrebbero verificarsi prestazioni e conflitti tra le applicazioni: in questa installazione, vogliamo usare virtualenv. Tuttavia, per installare virtualenv, si desidera installarlo a livello globale per tutti e, quindi, sudo easyinstall. per l'installazione di virtualenv . che consente a virtualenv di funzionare effettivamente, quindi in che altro modo installare virtual env senza eseguire un'installazione manuale (e quindi difficile da mantenere).
mchicago,

1
ottenuto .. 'sudo easy_install3 --upgrade pip' ce l'ha fatta
pavan

31

Ho sostituito 0.8.1 in 0.8.2 in / usr / local / bin / pip e tutto ha funzionato di nuovo.

__requires__ = 'pip==0.8.2'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pip==0.8.2', 'console_scripts', 'pip')()
    )

Ho installato pip tramite easy_install che probabilmente mi ha causato questo mal di testa. Penso che sia così che dovresti farlo al giorno d'oggi ..

$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv

13
Cerco sempre di evitare l'installazione di pacchetti Python puri utilizzando i gestori di pacchetti del sistema operativo e ti consiglio di fare lo stesso. Ubuntu / Debian una volta ha rotto il pacchetto setuptools e ha causato alcuni mal di testa perché le persone non potevano disinstallare i pacchetti usando pip (a causa delle loro modifiche).
Hugo Tavares,

usare apt o yum non è abbastanza agnostico! le strategie in questa pagina sono adeguate per lo sviluppo locale, ma per favore non farlo per le distribuzioni.
Ken,

Lo stesso qui, pip si è ucciso durante l'aggiornamento a 1.3.1 su un Mac, mentre pip stesso ha detto che era ancora 1.2.1 ...
Anthony Liekens,

@PiotrDobrogost, vedi il commento sopra - è necessario in questo caso per far funzionare virtualenv.
mchicago,

27

Ho avuto questo problema quando stavo usando l'homebrew. Ecco la soluzione dal numero 26900

python -m pip install --upgrade --force pip

Potrebbe essere utile provarlo sia con l'opzione --user che senza (quest'ultima richiede sudo).
Ray

11

Prova a reinstallare con lo script get-pip:

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

Questo proviene dalla pagina pip Github e ha funzionato per me.


7

Se sei su CentOS assicurati di avere installato il pacchetto YUM "python-setuptools"

yum install python-setuptools

Risolto il problema per me.


6

La radice del problema sono spesso gli script obsoleti nella sottodirectory bin(Linux) o Scripts(Windows). Spiegherò questo usando il problema che ho riscontrato come esempio.

Avevo installato virtualenv versione 1.10 nei miei pacchetti del sito dell'utente (il fatto che sia nei pacchetti del sito dell'utente e non nei pacchetti del sito di sistema è irrilevante qui)

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

Dopo averlo aggiornato alla versione 1.11 ho ricevuto il seguente errore:

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

Il file /home/users/pdobrogost/.local/bin/virtualenvmenzionato nel messaggio di errore era simile al seguente:

#!/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ì, vediamo che lo virtualenvscript non è stato aggiornato e richiede ancora la versione 1.10 precedentemente installata di virtualenv.
Ora, reinstallando virtualenv in questo modo

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...

non aiuta (nessuno dei due pip install --user --upgrade --force-reinstall virtualenv) perché lo script /home/users/pdobrogost/.local/bin/virtualenvrimane invariato.

L'unico modo per risolvere il problema era rimuovere manualmente gli script virtualenv * dalla /home/users/pdobrogost/.local/bin/cartella e installare nuovamente virtualenv. Successivamente, gli script appena generati fanno riferimento alla versione corretta del pacchetto:

pdobrogost@host:~$ virtualenv --version
1.11

6

Sono stato in grado di risolverlo in questo modo:

$ brew update
$ brew doctor
$ brew uninstall python
$ brew install python --build-from-source    # took ~5 mins
$ python --version                           # => Python 2.7.9
$ pip install --upgrade pip

Sto correndo con le seguenti cose (dal 2 gennaio 2015):

OS X Yosemite
Version 10.10.1

$ brew -v
Homebrew 0.9.5

$ python --version
Python 2.7.9

$ ipython --version
2.2.0

$ pip --version
pip 6.0.3 from /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-6.0.3-py2.7.egg (python 2.7)

$ which pip
/usr/local/bin/pip

5

Stavo affrontando il problema simile in OSx. Il mio stacktrace stava dicendo

raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: setuptools>=11.3

Quindi ho fatto quanto segue

sudo pip install --upgrade setuptools

Questo ha risolto il problema per me. Spero che qualcuno lo troverà utile.


1
Questo risolto il mio problema su Windows 10.
Mark Allen

1
Questo risolto il problema per noi su CentOS 6.
Dan Phillimore,

2

Su Mac OS X (MBP), i seguenti (presi da un'altra risposta trovata qui) hanno risolto i miei problemi:

C02L257NDV33:~ jjohnson$ brew install pip
Error: No available formula for pip
Homebrew provides pip via: `brew install python`. However you will then
have two Pythons installed on your Mac, so alternatively you can:
    sudo easy_install pip
C02L257NDV33:~ jjohnson$ sudo easy_install pip

Chiaramente la causa principale qui sta avendo un metodo secondario con cui installare Python (nel mio caso Homebrew). Si spera che le persone responsabili dello script pip possano rimediare a questo problema poiché è ancora rilevante 2 anni dopo essere stato segnalato per la prima volta su Stack Overflow.


1

Ho avuto questo problema perché ho installato Python / Pip con uno strano ~/.pydistutils.cfgche non ricordavo di aver scritto. Eliminato, reinstallato (con pybrew) e tutto andava bene.


1

Nel mio caso (problema sam, ma altri pacchetti) non c'era dipendenza dalla versione. Una sequenza di disinstallazione di pip e installazione di pip ha aiutato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.