Могу ли я обновлять только непосредственно установленные пакеты с помощью pip? - PullRequest
0 голосов
/ 26 декабря 2018

Как мне вывести список пакетов, которые я непосредственно установил с pip, исключив при этом все зависимости, которые были установлены в результате?

У меня есть virtualenv, в котором я запускаю команды типа

$ pip install A B C
$ pip install X Y Z

, в результате которого я установил не только A, B, C, X, Y и Z, но и зависимости p, q, r, s, t, u, v и w.Но, глядя на любой данный пакет, я не могу вспомнить, было ли это то, что я установил напрямую или нет.Я хотел бы сохранить прямо установленные пакеты в этом обновлении venv с помощью чего-то вроде

$ pip install -U --directly-installed

с эффектом

$ pip install -U A B C X Y Z

Есть ли способ сохранить только непосредственно установленные пакетыявно обновляться (обновлять свои зависимости только в соответствии с требованиями этих пакетов)?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

На работе мы обрабатываем списки непосредственно установленных пакетов вручную.То есть, если нам нужен пакет, мы добавляем его в requirements.txt и запускаем

pip install -r requirements.txt

. После этого запускаем

pip freeze > requirements-freezed.txt

, чтобы сохранить весь список пакетов и зависимостей.Когда нам нужно воссоздать виртуальную среду, мы запускаем

pip install -r requirements-freezed.txt

Ваша задача обновить только установленные пакеты будет

pip install -U -r requirements.txt
pip freeze > requirements-freezed.txt
0 голосов
/ 26 декабря 2018

Из документации пипса:

--upgrade-стратегии Определяет, как следует обновлять зависимость [по умолчанию: только при необходимости].«Нетерпеливый» - зависимости обновляются независимо от того, удовлетворяет ли установленная в настоящее время версия обновленных пакетов.«Только при необходимости» - обновляются только в том случае, если они не удовлетворяют требованиям обновленных пакетов.

Так что кажется, что вы хотите, это уже поведение по умолчанию, но если вы хотите быть явным:

pip install -U --upgrade-strategy only-if-needed A B C X Y Z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...