Suporte para urllib3
v1.25 (lançado hoje/ontem). O habitual yada-yada "meu IC está quebrado".
Vários pacotes dos quais dependemos (por exemplo google.cloud.storage
, azure.storage
) têm verificação de versão estrita em requests
usando pkg_resources.require('requests >= 2.18.0')
. Quaisquer dependências não atendidas na cadeia abaixo e incluindo requests
farão com que a verificação falhe e gere uma exceção. urllib3<1.25
é atualmente uma dessas dependências.
Nenhuma exceção levantada na importação
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
}
Observe que uma correção de solicitação de pull deve fechar #5065 e #4961
Observe também que uma solução para o exemplo de reprodução acima é:
pip3 install sentry-sdk google-cloud-storage 'urllib3<1.25'
Já existe um PR em andamento: https://github.com/kennethreitz/requests/pull/5063
Para aqueles que estão assistindo, como mencionado , estamos bloqueados em urllib3
v1.25.2
@nateprewitt FYI 1.25.2 será lançado muito em breve, eu recomendaria, além de não permitir o 1.25.0, também não permitir o 1.25.1?
Nosso pipeline de CI começa a receber um erro [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
partir de 22 de abril, quando urllib3
versão 1.25 foi lançada. Você acha que isso está relacionado a esse problema?
@rkooo567 , você tentou executar o CI com o requisito adicional urllib3<1.25
?
@EpicWink Sim. E parece que resolve um problema. Também descobri que urllib3==1.25.2
também resolve o problema.
Foi lançado o urllib3 1.24.3 que corrige apenas o problema de injeção de CRLF para usuários do 1.24.X.
Aqui está uma pergunta possivelmente idiota: por que as solicitações restringem urllib3 a ser < 1,25? Como muitas outras dependências de pip continuarão a aumentar sua versão urllib3 mínima permitida, parece que isso garantirá duas coisas:
O urllib3 faz alterações importantes com tanta frequência que nos preocupamos apenas em confiar em seu controle de versão? Ou há outra preocupação?
Com base no número de referências a esse problema nos rastreadores de outros projetos, tenho certeza de que muitos outros mantenedores de projetos gostariam de uma resolução para isso mais cedo ou mais tarde... :) t acionar notificações por e-mail.)
+1 porque agrava os problemas causados pela falta de um resolvedor de dependência do Pip em alguns casos: https://github.com/pradyunsg/zazo/issues/14
Se você acha isso divertido, veja todas as coisas que usam solicitações e não podem atualizar urllib3. (fazemos algumas verificações manuais)
http://logs.openstack.org/36/658636/3/check/requirements-tox-py27-check-uc/48d2334/job-output.txt.gz#_2019 -05-14_06_33_55_887702
Resolvido com #5092, o lançamento está em pypi agora. Obrigado novamente @EpicWink
Comentários muito úteis
Aqui está uma pergunta possivelmente idiota: por que as solicitações restringem urllib3 a ser < 1,25? Como muitas outras dependências de pip continuarão a aumentar sua versão urllib3 mínima permitida, parece que isso garantirá duas coisas:
O urllib3 faz alterações importantes com tanta frequência que nos preocupamos apenas em confiar em seu controle de versão? Ou há outra preocupação?