13

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

10

Как удалить все пакеты, установленные с помощью pip, из моей текущей активированной виртуальной среды?

5 ответ(ов)

19

Вот вариант решения, который я нашёл как альтернативу. Это более изящный способ удаления библиотек, чем полное пересоздание virtualenv:

pip freeze | xargs pip uninstall -y

Если у вас установлены пакеты через VCS, нужно исключить эти строки и удалить пакеты вручную (поднято из комментариев ниже):

pip freeze --exclude-editable | xargs pip uninstall -y

Если у вас есть пакеты, установленные непосредственно из GitHub или GitLab, они будут иметь символ @. Например:

django @ git+https://github.com/django.git@<sha>

Вы можете добавить cut -d "@" -f1, чтобы получить только имя пакета, необходимое для его удаления.

pip freeze | cut -d "@" -f1 | xargs pip uninstall -y
1

Это работает с последней версией. Я думаю, что это самый короткий и декларативный способ сделать это.

virtualenv --clear MYENV

Но почему бы просто не удалить и не создать виртуальное окружение заново?

Правила неизменности. Кроме того, трудно запомнить все эти команды с пайпами и грепами, которые используются в других решениях.

0

Я решил эту задачу следующим образом:

  1. Сначала создайте файл зависимостей, назвав его reqs.txt, с текущим списком установленных пакетов:
pip freeze > reqs.txt
  1. Затем удалите все пакеты из reqs.txt:
# -y означает, что пакет будет удалён без запроса подтверждения
pip uninstall -y -r reqs.txt

Мне нравится этот метод, так как у вас всегда есть файл зависимостей pip, на который можно сослаться в случае ошибки. Это также воспроизводимо и кроссплатформенно (Windows, Linux, MacOS).

0

Другие ответы, в которых используются команды pip list или pip freeze, обязательно должны включать флаг --local, иначе они также удалят пакеты, находящиеся в общем пространстве имен.

Вот фрагмент кода, который я использую регулярно:

pip freeze --local | xargs pip uninstall -y

Ссылка: pip freeze --help

0

Метод 1 (с использованием pip freeze)

Для удаления всех установленных пакетов в текущем окружении можно использовать следующую команду:

pip freeze | xargs pip uninstall -y

Эта команда получает список всех установленных пакетов с помощью pip freeze, а затем передает этот список команде pip uninstall для удаления каждого пакета без запроса подтверждения (-y).

Метод 2 (с использованием pip list)

Вы также можете использовать команду pip list для удаления пакетов следующим образом:

pip list | awk '{print $1}' | xargs pip uninstall -y

Здесь pip list выводит список всех пакетов, а awk '{print $1}' извлекает только имена пакетов. Полученный список передается команде pip uninstall для удаления.

Метод 3 (с использованием virtualenv)

Если вы хотите очистить виртуальное окружение, тогда можно воспользоваться следующей командой:

virtualenv --clear MYENV

Здесь MYENV — это название вашего виртуального окружения. Эта команда сбросит и очистит все установленные пакеты в указанном виртуальном окружении, оставляя его "чистым".

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь