#python #dependency-management #pipenv
#python #управление зависимостями #pipenv
Вопрос:
Я использую pipenv (версия 2018.11.26) для управления зависимостями в моем проекте. Иногда я хочу добавить или обновить только один пакет и не менять версии других пакетов. Как я могу этого добиться? Я пробовал оба
pipenv update --selective-upgrade requests
и
pipenv update --keep-outdated requests
но все же версии всех пакетов обновляются во время блокировки.
Pipfile amp; Pifile.lock: https://gist.github.com/jozo/d8351ed708e84c5ea0f69e82e585e5c6
Комментарии:
1. Я думаю
pipenv update --keep-outdated <pkg>
, вам подойдет проблема с GitHub2. Нет, это не работает @Maxime — все обновляется.
3. Согласно обсуждению в этом выпуске Github , на данный момент это невозможно.
Ответ №1:
Запуск pipenv install/uninstall/update
с --keep-outdated
pipenv
предотвратит обновление несвязанных заблокированных пакетов. (Странно, что это не обычай по умолчанию).
Если вы не хотите, чтобы некоторые пакеты когда-либо обновлялись автоматически, вы должны закрепить их в своем Pipfile
, например:
[packages]
django = "==2.2"
djangorestframework = "==3.9.2"
Комментарии:
1.
--keep-outdated
для меня это не выдает ошибку, но все равно обновляет все в pip-файле.2. @Yokhen: Пожалуйста, предоставьте минимальный, воспроизводимый пример (возможно, в другом вопросе). На момент написания
--keep-outdated
работал так, как предполагалось для меня.3. @EugeneYarmash
keep-outdated
не работает для конкретного пакета, как сообщается в этом выпуске . Похоже, на данный момент решения нет.4. Для меня
pipenv unistall --keep-outdated foobar
удаленоfoobar
изPipfile
, но не изPipfile.lock
5. Как мне обновить закрепленные пакеты через pipenv?