Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

526
Vistas
Resolviendo el nuevo problema de tiempo de ejecución de seguimiento de pip

El nuevo solucionador de dependencias de pip que se lanzó con la versión 20.3 tarda demasiado tiempo en instalar un paquete. En nuestra canalización de CI ayer, una compilación de ventana acoplable que solía demorar ~ 10 minutos se agotó después de 1 hora de mensajes de instalación de pip como este (casi para cada biblioteca instalada por cualquier dependencia hay una salida de registro similar):

 INFO: pip is looking at multiple versions of setuptools to determine which version is compatible with other requirements. This could take a while. Downloading setuptools-50.0.0-py3-none-any.whl (783 kB) Downloading setuptools-49.6.0-py3-none-any.whl (803 kB) Downloading setuptools-49.5.0-py3-none-any.whl (803 kB) Downloading setuptools-49.4.0-py3-none-any.whl (803 kB) Downloading setuptools-49.3.2-py3-none-any.whl (790 kB) INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking Downloading setuptools-49.3.1-py3-none-any.whl (790 kB) Downloading setuptools-49.3.0-py3-none-any.whl (790 kB) Downloading setuptools-49.2.1-py3-none-any.whl (789 kB) Downloading setuptools-49.2.0-py3-none-any.whl (789 kB) Downloading setuptools-49.1.3-py3-none-any.whl (789 kB) Downloading setuptools-49.1.2-py3-none-any.whl (789 kB) Downloading setuptools-49.1.1-py3-none-any.whl (789 kB) Downloading setuptools-49.1.0-py3-none-any.whl (789 kB) Downloading setuptools-49.0.1-py3-none-any.whl (789 kB) Downloading setuptools-49.0.0-py3-none-any.whl (789 kB) Downloading setuptools-48.0.0-py3-none-any.whl (786 kB) Downloading setuptools-47.3.2-py3-none-any.whl (582 kB) Downloading setuptools-47.3.1-py3-none-any.whl (582 kB) Downloading setuptools-47.3.0-py3-none-any.whl (583 kB) Downloading setuptools-47.2.0-py3-none-any.whl (583 kB) Downloading setuptools-47.1.1-py3-none-any.whl (583 kB) Downloading setuptools-47.1.0-py3-none-any.whl (583 kB) Downloading setuptools-47.0.0-py3-none-any.whl (583 kB) Downloading setuptools-46.4.0-py3-none-any.whl (583 kB) Downloading setuptools-46.3.1-py3-none-any.whl (582 kB) Downloading setuptools-46.3.0-py3-none-any.whl (582 kB) Downloading setuptools-46.2.0-py3-none-any.whl (582 kB) Downloading setuptools-46.1.3-py3-none-any.whl (582 kB) Downloading setuptools-46.1.2-py3-none-any.whl (582 kB) Downloading setuptools-46.1.1-py3-none-any.whl (582 kB) Downloading setuptools-46.1.0-py3-none-any.whl (582 kB) Downloading setuptools-46.0.0-py3-none-any.whl (582 kB) Downloading setuptools-45.3.0-py3-none-any.whl (585 kB) Downloading setuptools-45.2.0-py3-none-any.whl (584 kB) Downloading setuptools-45.1.0-py3-none-any.whl (583 kB) Downloading setuptools-45.0.0-py2.py3-none-any.whl (583 kB) Downloading setuptools-44.1.1-py2.py3-none-any.whl (583 kB) Downloading setuptools-44.1.0-py2.py3-none-any.whl (583 kB) Downloading setuptools-44.0.0-py2.py3-none-any.whl (583 kB) Downloading setuptools-43.0.0-py2.py3-none-any.whl (583 kB) Downloading setuptools-42.0.2-py2.py3-none-any.whl (583 kB) Downloading setuptools-42.0.1-py2.py3-none-any.whl (582 kB) Downloading setuptools-42.0.0-py2.py3-none-any.whl (582 kB) Downloading setuptools-41.6.0-py2.py3-none-any.whl (582 kB) Downloading setuptools-41.5.1-py2.py3-none-any.whl (581 kB) Downloading setuptools-41.5.0-py2.py3-none-any.whl (581 kB) Downloading setuptools-41.4.0-py2.py3-none-any.whl (580 kB) Downloading setuptools-41.3.0-py2.py3-none-any.whl (580 kB) Downloading setuptools-41.2.0-py2.py3-none-any.whl (576 kB) Downloading setuptools-41.1.0-py2.py3-none-any.whl (576 kB) Downloading setuptools-41.0.1-py2.py3-none-any.whl (575 kB) Downloading setuptools-41.0.0-py2.py3-none-any.whl (575 kB) Downloading setuptools-40.9.0-py2.py3-none-any.whl (575 kB) Downloading setuptools-40.8.0-py2.py3-none-any.whl (575 kB) Downloading setuptools-40.7.3-py2.py3-none-any.whl (574 kB) Downloading setuptools-40.7.2-py2.py3-none-any.whl (574 kB) Downloading setuptools-40.7.1-py2.py3-none-any.whl (574 kB) Downloading setuptools-40.7.0-py2.py3-none-any.whl (573 kB) Downloading setuptools-40.6.3-py2.py3-none-any.whl (573 kB) Downloading setuptools-40.6.2-py2.py3-none-any.whl (573 kB) Downloading setuptools-40.6.1-py2.py3-none-any.whl (573 kB) Downloading setuptools-40.6.0-py2.py3-none-any.whl (573 kB) Downloading setuptools-40.5.0-py2.py3-none-any.whl (569 kB) Downloading setuptools-40.4.3-py2.py3-none-any.whl (569 kB) Downloading setuptools-40.4.2-py2.py3-none-any.whl (569 kB) Downloading setuptools-40.4.1-py2.py3-none-any.whl (569 kB) Downloading setuptools-40.4.0-py2.py3-none-any.whl (568 kB) Downloading setuptools-40.3.0-py2.py3-none-any.whl (568 kB)

Estoy bastante confundido sobre si estamos usando el nuevo solucionador de pip correctamente, especialmente porque

 - Substantial improvements in new resolver for performance, output and error messages, avoiding infinite loops, and support for constraints files.

El comportamiento observado se describe como retroceso en las notas de la versión. Entiendo por qué está ahí. Especifica que puedo usar un archivo de restricciones (parece un requirements.txt) que corrige la versión de las dependencias para reducir el tiempo de ejecución usando pip install -c constraints.txt setup.py .

¿Cuál es la mejor manera de producir este archivo de restricciones? Actualmente, la mejor manera que se me ocurre es ejecutar pip install setup.py localmente en un nuevo entorno virtual y luego usar pip freeze > constraints.txt . Sin embargo, esto todavía lleva mucho tiempo para la instalación local (ha estado atascado durante unos 10 minutos ahora). Las notas mencionan que This means the “work” is done once during development process, and so will save users this work during deployment.

Con el antiguo solucionador de dependencias, pude instalar este paquete en menos de un minuto localmente.

¿Cuál es el proceso recomendado aquí?

Editar: acabo de descubrir que algunas de las dependencias apuntan directamente al servidor interno de gitlab. Si, en cambio, instalo directamente desde nuestro registro interno de paquetes, vuelve a funcionar en un par de minutos.

over 4 years ago · Santiago Trujillo
6 Respuestas
Responde la pregunta

0

A pesar de que todos mis paquetes en requirements.txt tenían una versión corregida, el problema seguía presente. Simplemente los actualicé a sus últimas versiones en su lugar. Por supuesto, esto implica un esfuerzo adicional para garantizar que nada se rompa, pero pareció resolver el problema para mí.

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve un problema similar y quería informar la solución que funcionó para mí. Tuve que actualizar la versión pip usando

 pip install --upgrade pip

En realidad, estaba creando una imagen acoplable, así que agregué la línea

 RUN pip install --upgrade pip

Justo antes de instalar los requisitos. En el momento de escribir esta respuesta, la versión pip instalada es 22.0.3 . Hacerlo solucionó el problema.

over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso nunca terminó. El motivo fue actualizar djangorestframework a una versión incompatible con django . Quería que instalara djangorestframework-3.12.4 , que depende de django >= 2.2 , y también tenía django==2.0.2 en requirements.txt .

over 4 years ago · Santiago Trujillo Denunciar

0

Rebaje su pip a la versión 20.x, este es el problema que enfrentará en la versión 21.x de pip

over 4 years ago · Santiago Trujillo Denunciar

0

He fijado todas mis dependencias. Tendrás que fijarlos más tarde o ahora, así que es mejor hacerlo ahora. estoy en pip 20.3.1

Si no fijamos ninguna de nuestras dependencias, el nuevo algoritmo de resolución de dependencias comprueba todas las versiones disponibles con cada dependencia, desde la última hasta las etiquetas de la versión inicial.

over 4 years ago · Santiago Trujillo Denunciar

0

Entonces están cambiando el resolver, esto parece ser un error. Lo que funcionó fue usar el viejo resolver, usando la bandera

 --use-deprecated=legacy-resolver

Esto funcionará hasta pip 21.0 aparentemente.

fuente https://github.com/pypa/pip/issues/9215

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda