Поддержка urllib3
v1.25 (выпущена сегодня/вчера). Обычная ляда-ляда "мой КИ сломался".
Несколько пакетов, от которых мы зависим (например, google.cloud.storage
, azure.storage
) имеют строгую проверку версии на requests
с использованием pkg_resources.require('requests >= 2.18.0')
. Любые неудовлетворенные зависимости в приведенной ниже цепочке, включая requests
, приведут к сбою проверки и вызову исключение. urllib3<1.25
в настоящее время является одной из таких зависимостей.
При импорте исключений не возникает
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
}
Обратите внимание, что запрос на включение, исправляющий это, должен закрыть #5065 и #4961.
Также обратите внимание, что решение приведенного выше примера воспроизведения:
pip3 install sentry-sdk google-cloud-storage 'urllib3<1.25'
PR уже в работе: https://github.com/kennethreitz/requests/pull/5063
Для тех, кто смотрит, как уже упоминалось , мы заблокированы на urllib3
v1.25.2
@nateprewitt FYI 1.25.2 будет выпущен очень скоро, я бы порекомендовал в дополнение к запрету 1.25.0 также запретить 1.25.1?
Наш конвейер CI начинает получать ошибку [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
с 22 апреля, когда была выпущена версия 1.25 urllib3
. Как вы думаете, это связано с этой проблемой?
@ rkooo567 , вы пробовали запустить CI с дополнительным требованием urllib3<1.25
?
@EpicWink Да. И вроде решает проблему. Я также узнал, что urllib3==1.25.2
также решает проблему.
Выпущена версия urllib3 1.24.3, которая устраняет только проблему внедрения CRLF для пользователей 1.24.X.
Вот, возможно, глупый вопрос: почему запросы ограничивают urllib3 значением <1,25? Поскольку многие другие зависимости от pip будут продолжать увеличивать свою минимально допустимую версию urllib3, похоже, что это гарантирует две вещи:
Вносит ли urllib3 критические изменения так часто, что мы беспокоимся о том, чтобы просто доверять их версиям? Или есть другая забота?
Основываясь на количестве ссылок на эту проблему в трекерах других проектов, я уверен, что есть много других сопровождающих проектов, которые были бы признательны за решение этой проблемы как можно скорее… :) (Указывая на это, поскольку ссылки на проблемы не t инициировать уведомления по электронной почте.)
+1, потому что в некоторых случаях это усугубляет проблемы, вызванные отсутствием у Pip преобразователя зависимостей : https://github.com/pradiunsg/zazo/issues/14
Если вы думаете, что это весело, посмотрите на все, что использует запросы и не может обновить urllib3. (мы проводим ручную проверку)
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
Решено с # 5092, релиз теперь на pypi. Еще раз спасибо @EpicWink
Самый полезный комментарий
Вот, возможно, глупый вопрос: почему запросы ограничивают urllib3 значением <1,25? Поскольку многие другие зависимости от pip будут продолжать увеличивать свою минимально допустимую версию urllib3, похоже, что это гарантирует две вещи:
Вносит ли urllib3 критические изменения так часто, что мы беспокоимся о том, чтобы просто доверять их версиям? Или есть другая забота?