pip se rompió. cómo arreglar DistributionNotFound error?


Cada vez que intento usar pip recibo un error. Por ejemplo:

$ 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

Me siento tentado a cambiar el valor de en pip==0.8.2.. pero no me siento lidiando con las consecuencias de 'hackear' mi instalación... Estoy ejecutando python 2.7 y pip está en la versión 0.8.2.

 137
Author: Stephan, 2011-06-01

11 answers

Encuentro este problema en mi MacBook, la razón es porque como dijo @Stephan, uso easy_install para instalar pip, y la mezcla de ambas herramientas de gestión de paquetes py llevó al problema pkg_resources.DistributionNotFound. La resolución es:

easy_install --upgrade pip

Recuerde: simplemente use una de las herramientas anteriores para administrar sus paquetes Py.

 243
Author: NewPtone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-12 03:24:07

Reemplazé 0.8.1 en 0.8.2 en /usr/local/bin/pip y todo volvió a funcionar.

__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')()
    )

Instalé pip a través de easy_install lo que probablemente me causó este dolor de cabeza. Creo que así es como deberías hacerlo hoy en día..

$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv
 31
Author: Stephan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-01 11:28:24

Tuve este problema cuando estaba usando homebrew. Aquí está la solución del Problema #26900

python -m pip install --upgrade --force pip
 24
Author: Louis Cremen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-10 07:01:28

Intente reinstalar con el script get-pip:

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

Esto proviene de la página de pip Github, y funcionó para mí.

 8
Author: pavan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-19 11:30:40

Si estás en CentOS asegúrate de tener instalado el paquete YUM "python-setuptools"

yum install python-setuptools

Lo arreglé para mí.

 7
Author: Dave Lancea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-28 20:01:06

La raíz del problema son a menudo scripts obsoletos en el subdirectorio bin (Linux) o Scripts (Windows). Voy a explicar esto usando el problema que me encontré a mí mismo como ejemplo.

Tenía virtualenv versión 1.10 instalado en mi sitio de usuario-paquetes (el hecho de que está en el sitio de usuario-paquetes no sytem sitio-paquetes es irrelevante aquí)

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

Después de actualizarlo a la versión 1.11 obtuve el siguiente error:

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

El archivo /home/users/pdobrogost/.local/bin/virtualenv mencionado en el mensaje de error parecía esto:

#!/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')()
    ) 

Allí, vemos que el script virtualenv no se actualizó y todavía requiere la versión 1.10 previamente instalada de virtualenv.
Ahora, reinstalar virtualenv como este

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

No ayuda (ni pip install --user --upgrade --force-reinstall virtualenv) porque script /home/users/pdobrogost/.local/bin/virtualenv se deja sin cambios.

La única manera de arreglar esto fue eliminando manualmente los scripts virtualenv* de la carpeta /home/users/pdobrogost/.local/bin/ e instalando virtualenv nuevamente. Después de esto, los scripts recién generados se refieren a la versión adecuada del paquete:

pdobrogost@host:~$ virtualenv --version
1.11
 6
Author: Piotr Dobrogost,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-23 19:16:41

Pude resolver esto de la siguiente manera:

$ 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

Estoy corriendo con las siguientes cosas (a partir del 2 de enero de 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
Author: hernamesbarbara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-02 17:04:19

Me enfrentaba al problema similar en OSx. Mi stacktrace estaba diciendo

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

Entonces hice lo siguiente

sudo pip install --upgrade setuptools

Esto resolvió el problema para mí. Espero que alguien encuentre esto útil.

 4
Author: Nabin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-16 06:31:40

En Mac OS X (MBP), lo siguiente (tomado de otra respuesta que se encuentra aquí) resolvió mis problemas:

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

Claramente la causa raíz aquí es tener un método secundario por el cual instalar python (en mi caso Homebrew). Con suerte, las personas responsables del script pip pueden remediar este problema ya que sigue siendo relevante 2 años después de ser reportado por primera vez en el Desbordamiento de la pila.

 2
Author: Joe Johnson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-01 17:37:59

Tuve este problema porque instalé python/pip con un ~/.pydistutils.cfg extraño que no recordaba haber escrito. Lo borré, lo reinstalé (con pybrew), y todo estaba bien.

 1
Author: polm23,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-22 11:35:43

En mi caso (problema sam, pero otros paquetes) no había ninguna dependencia de versión. Una secuencia de pip uninstall e pip insstall ayudó.

 1
Author: rhoerbe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-24 14:44:22