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 ninguno 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 que rompe cosas en algunos casos cuando intento instalar paquetes con un requirements.txt
archivo generado pip freeze
que incluye la pkg-resources==0.0.0
línea (por ejemplo, cuando Travis CI intenta instalar dependencias pip
y encuentra esto) línea).
¿Qué es pkg-resources
, y está bien eliminar esta línea requirements.txt
?
Actualizar:
He descubierto que esta línea solo parece existir en la salida de pip freeze
cuando estoy en a virtualenv
. Todavía no estoy seguro de qué es o qué hace, pero investigaré más a fondo sabiendo que es probable que esté relacionado virtualenv
.
fuente
pip
? Estoy pensando que esto podría haber sido algo que se perdieron en una versión anterior, ya8.1.2
que no tengo entradapkg-resources
. (Lo cual no debe ya estoy bastante seguropkg-resources
viene consetuptools
).virtualenv
, y de hecho, cuando estoy no en un virtualenv Yo no lo veo bien. Esto todavía no explica qué es, pero al menos es una pista que puedo investigar.Respuestas:
De acuerdo con https://github.com/pypa/pip/issues/4022 , este es un error que resulta de que Ubuntu proporcione metadatos incorrectos a pip. Entonces, no, no parece haber una buena razón para este comportamiento. Archivé 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 tus required.txt. Aquí hay un ejemplo de Crear archivo stanza que congela de forma segura su lista de paquetes (suelte su Makefile y ejecute con
make freeze
):fuente
AttributeError: module 'pkg_resources' has no attribute 'iter_entry_points'
, así que piensa que es mejor sólo para sacarlo derequirements.txt
En cuanto a la parte de su pregunta "¿ está bien eliminar esta línea? ":
Tengo el mismo problema aquí desarrollando en ubuntu 16.04 con esa misma línea en los requisitos. Cuando se despliega en un Debian 8.5 en ejecución,
"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 ser satisfecha. Lo mismo en ubuntu: el paquete también existe allí.Como se indica aquí , parece ser un "paquete instalado implícitamente".
Entonces: Si está en un Debian / Ubuntu con python-pkg-resources instalado, debería ser seguro eliminar esa línea . 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.
fuente
virtualenv
también?Encontré esta respuesta en este enlace: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
por: Louis Bouchard (louis) escribió el 16/11/2019:
Funcionó para mi. Pero no soy un experto, por lo que si alguien lo entiende mejor, sería genial si se 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:
Usar la versión de virtualenv instalada por pip puede ser una solución viable:
hth, ... Louis
fuente
En Ubuntu, puede solucionar esto eliminando el
virtualenv
paquete de Ubuntu e instalando una nueva versión depip
:fuente