Восстановите установку Python для установки по умолчанию плюс способные зависимости от пакета

Я играл вокруг много со своими установками Python (2 и 3) и установил набор пакетов, некоторого использования apt-get, но большая часть использования pip. Я также обновил многих apt- установленные пакеты с pip к более новой версии.

Мой вопрос:
Как я могу обратить все те изменения, удалите все pip- установленные пакеты Python и просто сохраняют набор по умолчанию предварительно установленных пакетов в их версии репозитория по умолчанию плюс установленные apt-get но только как зависимость другого программного обеспечения, всегда понижая до версии репозитория при необходимости.

Я хочу сделать это, чтобы иметь убранную среду Python для системы и иметь мои модификации в virtualenvs только.

Это возможно без системы, переустанавливают? Как я приблизился бы к нему?

14
задан 17 September 2015 в 02:05

1 ответ

Я запустил бы путем списка пакетов Python, управляемых apt-get (следующая острота занимает несколько секунд, чтобы работать, быть терпеливой):

$ for pyfile in `ls /usr/lib/python2.7/dist-packages`; do dpkg -S "/usr/lib/python2.7/dist-packages/${pyfile}" | sed 's/:.*//g'; done | sort -u

Примечание: при необходимости замените 2.7 любой версией Python, которой Вы интересуетесь.

Затем, удаляют пакеты, которые Вы установили вручную. Если Вы не уверены, которые Вы установили, можно получить список всех пакетов, установленных вручную с помощью следующей команды (см. этот вопрос ):

$ comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)

Затем удаляют пакеты Python, которые Вы установили вручную, например:

$ sudo apt-get remove python-tk python-scipy

Затем, Вы хотите знать, какие пакеты Вы установили зернышко использования:

$ ls -ltd /usr/local/lib/python2.7/dist-packages/*

Это списки команд содержание каталога установки зернышка, отсортированного по дате последнего изменения, помогая найти пакеты, Вы установили себя. Например, я установил инструмент Google gcloud, который устанавливает набор пакетов зернышка, которые я не хочу удалять, но просмотр списка, легко видеть, что они были все установлены в то же точное время, таким образом, я знаю, которые я должен уехать, и которые я могу удалить. Перед удалением любого пакета зернышка необходимо взять снимок списка установленных пакетов:

$ sudo pip freeze > $HOME/pip_freeze_snapshot.txt

Затем просто удаляют пакеты, которые Вы хотите, например:

$ sudo pip uninstall py pytest

Наконец, не забывайте, что некоторые пакеты зернышка, возможно, были установлены в Вашем пользовательском каталоге. Возможно, Вы соглашаетесь с этим, но в противном случае можно перечислить их:

$ ls -ltd $HOME/.local/lib/python2.7/site-packages/*

, Если Вы хотите избавиться от всех этих пакетов, можно просто удалить этот каталог. Иначе просто удалите отдельные пакеты, например:

$ pip uninstall tensorflow

не забывают проверять на другие версии Python (например, 3.5).

5
ответ дан 23 November 2019 в 03:07

Другие вопросы по тегам:

Похожие вопросы: