¿Qué es “pkg-resources==0.0.0” en la salida del comando pip freeze?

5 minutos de lectura

avatar de usuario
elethan

cuando corro pip freeze Veo (entre otros paquetes esperados) pkg-resources==0.0.0. He visto algunas publicaciones que mencionan este paquete (incluido este), pero ninguna explica qué es o por qué está incluido en la salida de pip freeze. La razón principal por la que me pregunto es por curiosidad, pero también, parece romper cosas en algunos casos al intentar instalar paquetes con un requirements.txt archivo generado con pip freeze que incluye el pkg-resources==0.0.0 línea (por ejemplo cuando Travis CI intenta instalar dependencias a través de pip y encuentra esta línea).

Que es pkg-resourcesy ¿está bien eliminar esta línea de requirements.txt?

Actualizar:

Descubrí que esta línea solo parece existir en la salida de pip freeze cuando estoy en un virtualenv. Todavía no estoy seguro de qué es o qué hace, pero investigaré más sabiendo que probablemente esté relacionado con virtualenv.

  • “Parece fallar en algunos casos al intentar instalar paquetes con un archivo requirements.txt generado con pip freeze que incluye la línea pkg-resources==0.0.0”.. ¿Puedes tal vez dar un ejemplo para eso?

    – Dimitris Fasarakis Hilliard

    19/09/2016 a las 16:58

  • @Jim, buen punto. Agregué el ejemplo con el que me encontré.

    – elethan

    19/09/2016 a las 17:03

  • hm, ¿cuál es tu versión de pip? Estoy pensando que esto podría haber sido algo que se perdieron en una versión anterior ya que en 8.1.2 no tengo entrada para pkg-resources. (Lo cual no debería, ya que estoy bastante seguro pkg-resources viene con setuptools).

    – Dimitris Fasarakis Hilliard

    19/09/2016 a las 17:25


  • @Jim, se me acaba de ocurrir que puede estar relacionado con virtualenvy de hecho, cuando estoy no en un virtualenv tampoco lo veo. Esto todavía no explica qué es, pero al menos es una pista que puedo investigar.

    – elethan

    19 de septiembre de 2016 a las 18:12

  • Posible duplicado de ¿Por qué pip congela la lista “pkg-resources==0.0.0”?

    – Luis

    11 de marzo de 2019 a las 17:13

avatar de usuario
craig wright

De acuerdo a https://github.com/pypa/pip/issues/4022, este es un error que resulta de que Ubuntu proporciona metadatos incorrectos a pip. Entonces, no, no parece haber una buena razón para este comportamiento. Presenté un error de seguimiento con Ubuntu. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

Para hacer una copia de seguridad de la respuesta anterior, debería ser seguro eliminar esa línea de sus requisitos.txt. Aquí hay un ejemplo de la estrofa Make file que congela de forma segura su lista de paquetes (coloque su Makefile y ejecútelo con make freeze):

freeze:
    pip freeze | grep -v "pkg-resources" > requirements.txt

editar 2022 06 de julio:

Me han informado que el nombre del paquete difiere según el sistema en uso (pkg-resources contra pkg_resources). Consulte los comentarios adjuntos a esta respuesta para conocer las diferencias de uso entre las diferentes versiones de Debian/Ubuntu. Como pkg-resources es el nombre de paquete históricamente correcto en el momento en que se publicó (hace casi 6 años) para el sistema en cuestión, permanecerá sin cambios en esta respuesta.

  • No es un error específico de Ubuntu, Debian tiene el mismo problema

    – Medusa

    14 de julio de 2017 a las 11:31

  • todavía causa dolor de cabeza al intentar implementar en heroku

    – Martín

    10 oct 2018 a las 18:13

  • Esto parece seguir siendo un problema con ubuntu 18.04

    – Carmín Tambascia

    3 abr 2019 a las 21:48

  • Sigue siendo un problema con Python 3.8 en Ubuntu 19.04

    – eric.frederich

    2 mayo 2019 a las 12:05

  • Sigue siendo un problema con venv de Python 3.8 en Ubuntu 20.04

    – Pynchia

    30 de junio de 2020 a las 8:29


avatar de usuario
karlsebal

En cuanto a la parte de tu pregunta “¿Está bien eliminar esta línea?“:

Tengo el mismo problema aquí desarrollando en un ubuntu 16.04 con esa misma línea en los requisitos. Al implementar en un debian 8.5 que se ejecuta "pip install -r requirements.txt" pip se queja de que pkg-resources “no se encuentra”, pero hay un paquete global instalado “python-pkg-resources”, por lo que la dependencia debe satisfacerse. Lo mismo en ubuntu: el paquete también existe allí.

Como se indica aquí, parece ser un “paquete instalado implícitamente”.

Asi que: Si está en Debian/Ubuntu y tiene instalado python-pkg-resources, debería ser seguro eliminar esa línea.. Así lo hice y todo está funcionando bien. Sin embargo, dado que no soy un experto en esto, debe tener en cuenta que esto podría generar complicaciones al implementarlo en otra máquina.

  • Gracias por la info. Terminé eliminándolo también y tampoco he visto ninguna consecuencia, pero, por supuesto, se aplican las mismas advertencias que mencionas. Donde está instalando a/desde un virtualenv ¿también?

    – elethan

    22/09/2016 a las 15:29

  • Sí, intenté instalar desde dentro de un virtualenv. Dado que el paquete de todo el sistema está presente y no quería estropear las cosas, no intenté instalar por pip en todo el sistema.

    – Karlsebal

    24 de septiembre de 2016 a las 11:14

avatar de usuario
panxogol

Encontré esta respuesta en este enlace: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

por: Louis Bouchard (louis) escribió el 2019-11-16:

Funcionó para mí. Pero no soy un experto, así que si alguien lo entiende mejor, sería genial que lo explicara.

Hola,

por lo que vale, el problema proviene de la versión debianizada de virtualenv que usa una versión desagregada de pkg_resource que se agrega a virtualenv en el momento de la creación:

$ virtualenv .
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/caribou/git/quividi/test/bin/python2
Also creating executable in /home/caribou/git/quividi/test/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ pip freeze
pkg-resources==0.0.0

Usar la versión pip instalada de virtualenv puede ser una solución viable:

$ sudo apt -y purge python3-virtualenv virtualenv tox
$ pip install virtualenv
$ virtualenv .
pip install virtualenv
Collecting virtualenv
  Downloading https://files.pythonhosted.org/packages/c5/97/00dd42a0fc41e9016b23f07ec7f657f636cb672fad9cf72b80f8f65c6a46/virtualenv-16.7.7-py2.py3-none-any.whl (3.4MB)
    100% |████████████████████████████████| 3.4MB 351kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-16.7.7
$ virtualenv .
New python executable in /home/caribou/git/quividi/test/bin/python
Installing setuptools, pip, wheel...
done.
$ source bin/activate
$ pip freeze
$

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad