Описание
Я буду обсуждать конкретные пакеты, поскольку это наблюдалось в реальных условиях (HypothesisWorks / hypothesis # 2113): мы недавно обновили нашу зависимость install_requires
от attrs>=16.0
до attrs>=19.2
, на основание, что установка последней версии Hypothesis также обновит атрибуты пользователей.
pip install hypothesis
действительно работает.pip install pytest hypothesis
работает, если старая версия attrs еще не установлена.Похоже, что когда в команде установки указано несколько пакетов, совместимость уже установленных зависимостей оценивается только для первого перечисленного пакета, а для более поздних пакетов проверяется наличие, но не версия зависимостей. Это также влияет на использование файлов требований.
Ожидаемое поведение
Независимо от других пакетов, перечисленных для установки или уже присутствующих, pip install hypothesis
должен привести либо к установке совместимого набора пакетов, либо к сообщению об ошибке, а не к нарушению среды.
Как размножаться
[tox]
skipsdist=True
[testenv]
deps =
pip
attrs==19.1.0
commands =
## Execute the problematic install command
# pip install hypothesis # works
# pip install hypothesis pytest # works
pip install pytest hypothesis # fails, as does `pip install attrs hypothesis` !
# pip install --upgrade pytest hypothesis # works
## Check that the installed packages are compatible
python -c "import hypothesis"
Затем запустите tox --recreate
чтобы воссоздать виртуальную среду и выполнить команды.
(И спасибо всем, кто работает над pip
, это очень ценно и высоко ценится 😍)
Спасибо за подробности и удобный репродуктор! Очень признателен!
Это в основном # 988. Вкратце:
ERROR
заглавными буквами.
ERROR: hypothesis 4.38.2 has requirement attrs>=19.2.0, but you'll have attrs 19.1.0 which is incompatible.
pip check
как часть вашего CI, чтобы убедиться, что pip не совершил глупостей.pip-tools
(оборачивает pip более совершенным преобразователем) или pipenv
(который использует pip-tools
) или poetry
(у которого есть собственный преобразователь). причуда резолвера pip.Ах я вижу! Я просмотрел последние несколько страниц с проблемами, но ничего так далеко ... Рад закрыть эту проблему как дубликат, поскольку я не думаю, что в ней есть дополнительная информация?
Закрытие дубликатом №988.