Soporte para urllib3
v1.25 (lanzado hoy/ayer). El habitual yada-yada "mi IC está roto".
Múltiples paquetes de los que dependemos (por ejemplo google.cloud.storage
, azure.storage
) tienen una verificación de versión estricta en requests
usando pkg_resources.require('requests >= 2.18.0')
. Cualquier dependencia no satisfecha en la cadena a continuación y que incluya requests
hará que la verificación falle y genere una excepción. urllib3<1.25
es actualmente una de esas dependencias.
Ninguna excepción planteada en la importación
pkg_resources.ContextualVersionConflict: (urllib3 1.25 (/usr/local/lib/python3.6/dist-packages), Requirement.parse('urllib3<1.25,>=1.21.1'), {'requests'})
The above exception was the direct cause of the following exception:
ImportError: ``requests >= 2.18.0`` is required by the ``google.resumable_media.requests`` subpackage.
It can be installed via
pip install google-resumable-media[requests].
pip3 install sentry-sdk google-cloud-storage
>>> from google.cloud import storage
md5-cbc1943a1d569f335059802806d81765
/home/laurie/env-tmp/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25) or chardet (3.0.4) doesn't match a supported version!
RequestsDependencyWarning)
{
"chardet": {
"version": "3.0.4"
},
"cryptography": {
"version": ""
},
"idna": {
"version": "2.8"
},
"implementation": {
"name": "CPython",
"version": "3.6.7"
},
"platform": {
"release": "4.18.0-17-generic",
"system": "Linux"
},
"pyOpenSSL": {
"openssl_version": "",
"version": null
},
"requests": {
"version": "2.21.0"
},
"system_ssl": {
"version": "1010100f"
},
"urllib3": {
"version": "1.25"
},
"using_pyopenssl": false
}
Tenga en cuenta que una solicitud de extracción que solucione esto debería cerrar # 5065 y # 4961
También tenga en cuenta que una solución al ejemplo de reproducción anterior es:
pip3 install sentry-sdk google-cloud-storage 'urllib3<1.25'
Ya hay un PR en proceso: https://github.com/kennethreitz/requests/pull/5063
Para aquellos que miran, como se mencionó , estamos bloqueados en urllib3
v1.25.2
@nateprewitt FYI 1.25.2 se lanzará muy pronto, recomendaría además de rechazar 1.25.0 también rechazar 1.25.1.
Nuestra canalización de CI comienza a recibir un error [integration_py3_docker_metric] 19-04-29:10:26:57 ERROR [clipper_metric_docker.py:127] Failed to parse: http://localhost:44328/api/v1/series?match[]=clipper_mc_parse_time_ms_sum
a partir del 22 de abril, cuando se lanzó la versión 1.25 de urllib3
. ¿Crees que esto está relacionado con este problema?
@rkooo567 , ¿ha intentado ejecutar el CI con el requisito adicional urllib3<1.25
?
@EpicWink Sí. Y parece que resuelve un problema. También descubrí que urllib3==1.25.2
también resuelve el problema.
Se lanzó urllib3 1.24.3, que soluciona solo el problema de inyección de CRLF para los usuarios de 1.24.X.
Aquí hay una pregunta posiblemente tonta: ¿por qué las solicitudes restringen urllib3 a < 1.25? Dado que muchas otras dependencias de pip continuarán aumentando su versión mínima permitida de urllib3, parece que esto garantizará dos cosas:
¿Urllib3 realiza cambios importantes con tanta frecuencia que nos preocupa simplemente confiar en su control de versiones? ¿O hay otra preocupación?
Basado en la cantidad de referencias a este problema en los rastreadores de otros proyectos, estoy seguro de que hay muchos otros mantenedores de proyectos que agradecerían una solución a este problema más temprano que tarde... :) (señalándolo ya que las referencias del problema no activar notificaciones por correo electrónico).
+1 porque agrava los problemas causados por la falta de un solucionador de dependencias de Pip en algunos casos: https://github.com/pradyunsg/zazo/issues/14
Si cree que es divertido, mire todas las cosas que usan solicitudes y no pueden actualizar urllib3. (hacemos algunas comprobaciones manuales)
Resuelto con # 5092, el lanzamiento está disponible en pypi ahora. Gracias de nuevo @EpicWink
Comentario más útil
Aquí hay una pregunta posiblemente tonta: ¿por qué las solicitudes restringen urllib3 a < 1.25? Dado que muchas otras dependencias de pip continuarán aumentando su versión mínima permitida de urllib3, parece que esto garantizará dos cosas:
¿Urllib3 realiza cambios importantes con tanta frecuencia que nos preocupa simplemente confiar en su control de versiones? ¿O hay otra preocupación?