<p>pip 10: "pip list" advierte "Error en la deserialización de la entrada de caché, entrada ignorada"</p>

Creado en 16 abr. 2018  ·  27Comentarios  ·  Fuente: pypa/pip

Hola,
pip v.10 advierte repetidamente "Error en la deserialización de la entrada de caché, entrada ignorada":

$ uname
Darwin
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.4
BuildVersion:   17E199
$ brew info python<strong i="7">@2</strong>
python<strong i="8">@2</strong>: stable 2.7.14 (bottled), devel 2.7.15rc1, HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python@2/2.7.14_3 (4,603 files, 81.8MB) *
  Poured from bottle on 2018-03-10 at 22:25:36
 :
 :
$ brew info python3
python: stable 3.6.5 (bottled), devel 3.7.0b3, HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.6.5 (4,768 files, 100.2MB) *
  Poured from bottle on 2018-03-30 at 20:43:21
 :
 :
$ pip2 -V
pip 10.0.0 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
$ pip3 -V
pip 10.0.0 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
$ pip2 list --outdated
Package  Version Latest      Type 
-------- ------- ----------- -----
protobuf 3.5.1   3.5.2.post1 wheel
$ pip3 list --outdated
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Package  Version Latest      Type 
-------- ------- ----------- -----
protobuf 3.5.1   3.5.2.post1 wheel
$ 
cache vendored dependency auto-locked bug

Comentario más útil

Parece que ha estropeado su caché de pip. Está almacenado en ~/.cache/pip .

Si elimina ese directorio, este problema debería solucionarse.

Todos 27 comentarios

También he notado el mismo problema para las versiones de 64 bits de Windows 7 y 10 Professional. Veo el problema solo para Python 3.5 y no para Python 2.7 o Python 3.6 (tengo instalaciones separadas de las 3 versiones). Agregar --format legacy o --no-cache-dir hace que el problema desaparezca.

Actualización temporal de pip3 usando.

curl https://bootstrap.pypa.io/get-pip.py | python3

En lugar de pip install -U pip

Para pip2 pip2 install --upgrade pip

Parece que ha estropeado su caché de pip. Está almacenado en ~/.cache/pip .

Si elimina ese directorio, este problema debería solucionarse.

Gracias. Este fenómeno se reproduce. He confirmado que pip3 list --no-cache-dir --outdated funciona sin advertencias.

Sospecho que el problema es que las entradas de caché creadas en Python 2 no se pueden deserializar en Python 3. Si uso la opción --cache-dir para forzar diferentes cachés para Python 2 y Python 3, el problema desaparece.

El mensaje de error se genera desde C: \ Python36 \ Lib \ site-packages \ pip_vendor \ cachecontrol \ controller.py línea 139. La causa próxima es una falla de Serializer.loads () en C: \ Python36 \ Lib \ site-packages \ pip_vendor \ cachecontrol \ serialize.py línea 75.

Gracias. Su análisis suena razonable.

@pradyunsg : El problema no se soluciona eliminando el directorio de caché (ver el comentario de @japagetw).

AFAIU, usar --no-cache-dir en Python 3 es solo una solución temporal para esto (es decir, es un error).

¿Podemos hacer que el directorio de caché compartido para Python 2 y 3 funcione nuevamente (o hay alguna razón por la cual la misma versión de pip >= 10 necesita usar un formato de caché diferente en PY2 vs PY3 )?

Esto parece un error grave y una solución rápida debería ser asegurar que los nombres de archivo de las entradas en caché contengan una parte de la versión de serialización dentro de ellos.

El hecho de que esto también esté en stderr es bastante molesto.

Eliminar el directorio en .cache y crear 2 nuevos pip2 y pip3 en ese directorio me resolvió el problema en una de mis Mac temporalmente, pero no en otra. Reinstalar pip3 a través de curl no ayudó. De hecho, el problema aparece de manera inconsistente y mayoritariamente, pero no exclusivamente, con pip3 y no con pip2.

Es probable que esto se deba a un error en la canalización de almacenamiento en caché: hay un poco de historial con msgpack haciendo cosas incorrectamente alrededor de bytes.

Si alguien puede echar un vistazo a esto, antes de que uno de los mantenedores encuentre el tiempo para hacerlo, sería genial. :)

¿Alguien planea hacer algo sobre este error recién introducido? pip debe actualizarse lo antes posible para evitar choques con cachés incompatibles.

Las soluciones alternativas mencionadas aquí no son realmente aplicables en todos los casos y es probable que causen más problemas que la clasificación. Agregar una parte de control de versiones en el nombre de la entrada de la caché solucionaría este problema de una vez por todas, incluso si el formato de la caché cambiara nuevamente.

Potencialmente, todos los desarrolladores de paquetes de Python encontrarían este problema si usan tox para probar con múltiples versiones de Python. Por favor, no les pida que aíslen los cachés para cada objetivo tóxico, esto anula el propósito de tener un caché.

Yo también tengo este problema.

Yo también tengo el mismo problema

¿¿lo que pasa?? demasiados errores y problemas desde 9.0.1

@HakShak El hecho de que se use stderr es algo bueno. La especificación POSIX documenta y requiere que todos los mensajes de registro vayan a stderr y no a stdout, incluidos errores, advertencias, información y depuración. Solo la salida normal del programa debe ir a stdin. Esto generalmente significa, para la mayoría de las herramientas: salida analizable por computadora. Por ejemplo, en un administrador de paquetes, stdout debe contener solo paquetes instalados / eliminados / actualizados, sin el texto estándar que debe ir a stderr. Recuerdo haber arreglado algunas herramientas no compatibles a lo largo de los años. El flujo de salida no es el problema aquí.

Por otro lado, acabo de observar que este error se agregó al hito 18.0, no estoy seguro de cómo tomar esto, ya que la versión actual es 10.0. ¿Es como mucho tiempo en el futuro, o tal vez no conozco un plan para impulsar la versión pip para que coincida con el año actual?

¿Es como mucho tiempo en el futuro, o tal vez no conozco un plan para impulsar la versión pip para que coincida con el año actual?

Cambiamos a CalVer (# 5324), 18.0 será el próximo lanzamiento de pip, probablemente el próximo mes.

Descubrí que en Python 2, pip puede usar un caché poblado por una ejecución de Python 3, pero no al revés.

Una respuesta almacenada en caché en Py2 da como resultado que la caché almacene un encabezado que se carga en Py3 como bytes lugar de str . Esto hace que falle la deserialización. Trabajando en un PR para arreglarlo aguas arriba.

PR ascendente: ionrock / cachecontrol # 190

Upstream PR https://github.com/ionrock/cachecontrol/pull/190 se fusiona y se publica en CacheControl 0.12.5.

pip absorberá ese cambio cuando actualicemos nuestras dependencias vendidas en preparación para la próxima versión. :)

Estoy teniendo el mismo problema.

Este es el error que me sale

Error de deserialización de la entrada de caché, entrada ignorada
Reintentar (Reintentar (total = 4, conectar = Ninguno, leer = Ninguno, redireccionar = Ninguno, estado = Ninguno)) después de que la conexión se interrumpa por 'ProtocolError (' Connection aborted. ', ConnectionResetError (10054,' Una conexión existente fue cerrada a la fuerza por el host remoto ', Ninguno, 10054, Ninguno))': / simple / pip /
Reintentar (Reintentar (total = 3, conectar = Ninguno, leer = Ninguno, redireccionar = Ninguno, estado = Ninguno)) después de que la conexión se interrumpe por 'ProtocolError (' Connection aborted. ', ConnectionResetError (10054,' Una conexión existente fue cerrada a la fuerza por el host remoto ', Ninguno, 10054, Ninguno))': / simple / pip /
Reintentar (Reintentar (total = 2, conectar = Ninguno, leer = Ninguno, redireccionar = Ninguno, estado = Ninguno)) después de que la conexión se interrumpe por 'ProtocolError (' Connection aborted. ', ConnectionResetError (10054,' Una conexión existente fue cerrada a la fuerza por el host remoto ', Ninguno, 10054, Ninguno))': / simple / pip /
Reintentar (Reintentar (total = 1, conectar = Ninguno, leer = Ninguno, redireccionar = Ninguno, estado = Ninguno)) después de que la conexión se interrumpe por 'ProtocolError (' Connection aborted. ', ConnectionResetError (10054,' Una conexión existente fue cerrada a la fuerza por el host remoto ', Ninguno, 10054, Ninguno))': / simple / pip /
Reintentar (Reintentar (total = 0, conectar = Ninguno, leer = Ninguno, redireccionar = Ninguno, estado = Ninguno)) después de la conexión interrumpida por 'ProtocolError (' Connection aborted. ', ConnectionResetError (10054,' Una conexión existente fue cerrada por la fuerza por el host remoto ', Ninguno, 10054, Ninguno))': / simple / pip /
Requisito ya actualizado: pip en c: \ programdata \ anaconda3 \ lib \ site-packages
Está utilizando pip versión 9.0.3, sin embargo, la versión 18.0 está disponible.
Debería considerar la actualización a través del comando 'python -m pip install --upgrade pip'.

¿Cómo evito esto? Debido a esto, no puedo instalar ningún otro paquete, ya que me pide que actualice pip.

Parece que ha estropeado su caché de pip. Está almacenado en ~/.cache/pip .

Si elimina ese directorio, este problema debería solucionarse.

Estoy más interesado en, ¿qué es la deserialización de entradas de caché?

https://github.com/pypa/pip/issues/5250#issuecomment -394706450 explica por qué falló.

En esencia, el error se produce debido a una falta de coincidencia al convertir una solicitud http en una cadena (serialización). Este error / advertencia aparece al intentar convertir esa cadena en una solicitud http nuevamente (deserialización).

Parece que ha estropeado su caché de pip. Está almacenado en ~/.cache/pip .

Si elimina ese directorio, este problema debería solucionarse.

Muchas gracias.

Fácil de resolver este problema, ejecute la aplicación o terminal como administrador

Este hilo se ha bloqueado automáticamente ya que no ha habido ninguna actividad reciente después de que se cerró. Abra un nuevo problema para errores relacionados.

¿Fue útil esta página
0 / 5 - 0 calificaciones