Как удалить все пакеты, установленные через pip?
Как удалить все пакеты, установленные с помощью pip, из моей текущей активированной виртуальной среды?
5 ответ(ов)
Вот вариант решения, который я нашёл как альтернативу. Это более изящный способ удаления библиотек, чем полное пересоздание 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
Это работает с последней версией. Я думаю, что это самый короткий и декларативный способ сделать это.
virtualenv --clear MYENV
Но почему бы просто не удалить и не создать виртуальное окружение заново?
Правила неизменности. Кроме того, трудно запомнить все эти команды с пайпами и грепами, которые используются в других решениях.
Я решил эту задачу следующим образом:
- Сначала создайте файл зависимостей, назвав его
reqs.txt, с текущим списком установленных пакетов:
pip freeze > reqs.txt
- Затем удалите все пакеты из
reqs.txt:
# -y означает, что пакет будет удалён без запроса подтверждения
pip uninstall -y -r reqs.txt
Мне нравится этот метод, так как у вас всегда есть файл зависимостей pip, на который можно сослаться в случае ошибки. Это также воспроизводимо и кроссплатформенно (Windows, Linux, MacOS).
Другие ответы, в которых используются команды pip list или pip freeze, обязательно должны включать флаг --local, иначе они также удалят пакеты, находящиеся в общем пространстве имен.
Вот фрагмент кода, который я использую регулярно:
pip freeze --local | xargs pip uninstall -y
Ссылка: pip freeze --help
Метод 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 — это название вашего виртуального окружения. Эта команда сбросит и очистит все установленные пакеты в указанном виртуальном окружении, оставляя его "чистым".
Как обновить pip изнутри виртуального окружения?
Как установить psycopg2 с помощью "pip" в Python?
Нет модуля с именем pkg_resources
Файлы конфигурации pip, специфичные для Virtualenv
Как импортировать другие файлы Python?