Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿pip encuentra varios .dist-info en una rueda? Inspecciona el archivo antes de limpiar el entorno

El error valida la rueda que se está abriendo. Guarda el archivo exacto, enumera el ZIP sin extraerlo y compara otra descarga antes de borrar metadatos instalados o todas las cachés.

Diagrama original de una raíz, varias raíces y advertencia de distribución instalada.
Ilustración editorial original: inspecciona el ZIP antes de modificar el entorno. Watch at Ease

Si pip informa de una rueda inválida con varios directorios .dist-info, empieza por el archivo señalado, no por borrar site-packages. El código actual de pip reúne nombres del primer nivel del ZIP y rechaza varias raíces de metadatos. Una advertencia sobre una distribución ya instalada es otro diagnóstico.

Conservar el archivo y su identidad

Guarda error completo, nombre .whl, paquete y versión solicitados, ejecutable Python y python -m pip --version. Distingue índice, URL directa, wheelhouse local o compilación desde fuentes. Puede fallar una dependencia en lugar del paquete escrito en la orden.

Conserva una copia fuera del entorno y registra SHA-256 mediante python -m pip hash y la ruta entre comillas. Retira credenciales de los registros compartidos. Un nombre idéntico no demuestra que espejo, caché y proveedor entreguen iguales bytes.

Enumerar el ZIP sin extraer ni ejecutar

Usa python -m zipfile -l con la ruta entre comillas. Mira el primer componente de cada miembro y registra cada raíz distinta terminada en .dist-info. Varios archivos dentro de una raíz son normales; varias raíces son la condición investigada. Guarda lista y hash.

La comprobación opcional python -m zipfile -t examina integridad ZIP. Un CRC o encabezado correcto no garantiza estructura aceptable, editor auténtico ni todos los hashes RECORD. Si el ZIP no se lee, investiga el archivo; no lo extraigas directamente en site-packages para eludir validación.

Comparar una descarga independiente

Con el mismo intérprete e índice aprobado, descarga en un directorio vacío usando python -m pip download --no-deps --only-binary=:all: --no-cache-dir --dest wheel-check seguido del requisito exacto entre comillas. Pide una rueda compatible sin instalar; fallará si no existe. No copies una versión histórica ajena al proyecto.

Compara nombres, hashes y raíces. Si llegan los mismos bytes defectuosos, borrar más cachés no repara al proveedor. Si difieren, investiga ruta, espejo, compilación y selección exacta del archivo. Un hash diferente no demuestra cuál copia es auténtica.

Corregir la versión y comprobar la aplicación

Comunica una rueda publicada reproduciblemente defectuosa al mantenedor, con versión, nombre, origen sin credenciales, hash, lista y datos Python/pip. Tras revisar dependencias puede servir una publicación corregida o restricción compatible. Compilar fuentes es otra tarea con su propia cadena de herramientas.

No borres una raíz del ZIP y presentes el resultado como la publicación original: metadatos y RECORD están relacionados. Tampoco borres metadatos instalados solo porque la entrada sea mala. Prueba la alternativa en un entorno desechable con requirements reales, python -m pip check y la prueba básica de la aplicación. Resolver dependencias no demuestra compatibilidad de la aplicación.

Flujo original de conservación, comparación y verificación.
Ilustración editorial original: conserva, compara otra descarga y prueba la alternativa. Watch at Ease