Как удалить пакеты которые не используются в проекте из виртуального окружения?
Доброе время суток, подскажите пожалуйста столкнулся с такой проблемой.
Когда отдаю проект админам я все используемые пакеты в venv записываю в requirements.txt
Они там накатывают проект используя pip3 install -r requirements.txt
В чем суть вопроса: в ходе разработки приложения, я устанавливаю какой то пакет что то пробую, иногда что то не получается или другой пакет для решения данной задачи подходит лучше. И часто разработчики забывают удалять этот пакет. Он остается в зависимостях в venv и соответственно попадает в requirements.txt. Админы накатывают этот пакет хотя реально он там и не используется.
Вопрос, можно ли как то автоматически выявить такие пакеты и избавится от них?
Например автоматически деинсталировать их что бы они не попадали в requirements.txt
Тут наверное нужна какая то штука которая бы анализировала импорты в файлах проекта.
Но что то такова я не нашел.
- Вопрос задан 27 мая
- 210 просмотров
Комментировать
Решения вопроса 1
Потому что надёжного метода анализа зависимостей нет.
Импорты в питоне могут быть условными, выполняться в разное время, или вообще выполняться динамически через importlib.
Я бы сказал, вспомнить, какие пакеты тебе требуются, очистить окружение, поставить их, погонять приложение и пособирать недостающее.
А на будущее — когда тестируешь пакет, делай отдельную ветку в системе управления версиями, и отдельное окружение. Только когда пакет устоялся, делаешь merge.
Pip, основы и управление пакетами Python

В следующей статье мы рассмотрим, как мы можем управлять пакетами Python с помощью Pip. Как кто еще и кто меньше будет знать, что это администратор пакеты python. Его можно использовать для установки, обновления и удаления пакетов, написанных на языке программирования Python.
Имя представляет собой рекурсивную аббревиатуру, которую можно интерпретировать как Установщик пакетов Pip o Установщик Pip Python. Это простая система управления пакетами, используемая для установки и управления пакетами, которые можно найти в Индекс пакета Python (PyPI). Python 2.7.9 и новее (в серии Python2), Python 3.4 и более поздние версии включают этот менеджер (pip3 для Python3) дефолт.
Посмотреть все разделы
Установка
Чтобы установить это менеджер пакетов как в Debian, так и в Ubuntu, нам останется только открыть терминал (Ctrl + Alt + T) и написать:
sudo apt-get install python3-pip
Мы также можем установить pip из файла python. Нам просто нужно будет выполнить:
wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py
Обратите внимание, что get-pip.py также установит инструменты настройки y колесо.
Обновить PIP
Этот менеджер пакетов Он уже будет установлен, если мы используем Python 2> = 2.7.9 или Python 3> = 3.4.. Мы можем обновить его, используя в терминале:
sudo pip install -U pip
Обновить все (Пип, setuptools, whell), выполним:
sudo pip install --upgrade pip setuptools wheel
Узнай, какая версия установлена
Если мы хотим знать установленная версия этого менеджера пакетов, мы выполним:
![]()
pip --version
Создание виртуальных сред
Перед установкой любого пакета Python, рекомендуется создать виртуальную среду. Виртуальные среды Python позволяют нам устанавливать пакет Python в изолированном месте, а не глобально.
Допустим, нам нужно установить пакет Python, например youtube-dl, для которого требуется версия 1 LibFoo, а для другого приложения требуется версия 2. В этой ситуации легко закончить непреднамеренное обновление приложения, которое не должно обновляться. Чтобы этого избежать, изолируем пакеты в виртуальной среде. Все виртуальные среды имеют свои собственные каталоги установки и не взаимодействуют друг с другом и не конфликтуют друг с другом.
Мы можем создавать изолированные среды Python с помощью двух инструментов:
- Приехать
- Виртуальная среда
Если вы используете Python 3.3 и новее, Venv установлен по умолчанию. В этом примере я Я использую Python 2.x, и мне нужно установить virtualenv. Для этого мне нужно будет запустить:
sudo pip install virtualenv
Создайте виртуальную среду с помощью virtualenv

virtualenv NOMBRE source NOMBRE/bin/activate
Как только вы запустите указанную выше команду, вы сразу же попадете в свою виртуальную среду. За отключить виртуальную среду и вернитесь в свою обычную оболочку, запустите:
deactivate
Управление пакетами Python
Теперь мы рассмотрим наиболее распространенное базовое использование. Чтобы увидеть ее список всех доступных команд и опций в общем нам нужно будет только выполнить:
Если нужно узнать больше о команде, как и установочный, выполним:
pip install --help
Установить пакеты
Сначала мы собираемся создать виртуальную среду как показано ниже. В этом примере я буду использовать только virtualenv.
virtualenv MIENV
Замените MIENV своим именем. Ну наконец то, активировать это используя команду:
source MIENV/bin/activate
После того, как вы запустите указанную выше команду, вы будете находиться в своей виртуальной среде. Пришло время установить пакеты. Чтобы установить, например, youtube-dl, запустите:

pip install youtube-dl
Эта команда установит youtube-dl со всеми его зависимостями.
Установить версии пакета
к установить конкретную версию, бежать:
pip install youtube_dl=2017.12.14
к установить версию, отличную от указанной, бежать:
pip install youtube_dl!=2017.12.14
Скачать пакеты
к скачать пакет со всеми зависимостями (не устанавливая его), бежать:
pip download youtube-dl
Список всех установленных пакетов
Чтобы узнать, какие пакеты были установлены, запустим:
pip list
Эта команда покажет все пакеты, установленные с помощью этого менеджера.
Искать пакеты
к поиск конкретного пакета, например youtube-dl, запустите:

pip search youtube-dl
Пакеты обновлений
к обновить устаревший пакет, бежать:
pip install --upgrade youtube-dl
к перечислить все устаревшие пакеты в формате столбца запустите:
pip list --outdated --format=columns
Сейчас мы обновляем устаревшие пакеты до последних доступных версий используя команду:
pip freeze --local | grep -v '^\e' | cut -d = -f 1 | xargs -n1 pip install -U
Удалить пакеты
к удалить / удалить установленный пакет, бежать:
pip uninstall youtube-dl
Чтобы удалить несколько пакетов, нам нужно будет записать их с пробелом между ними.
Если мы хотим удалите все установленные пакеты python с помощью диспетчера пакетов, мы выполним:
pip freeze | xargs pip uninstall -y
Помощь

На этом этапе у нас будет представление о диспетчере пакетов Python и его использовании. Но это только верхушка айсберга из того, что мы можем сделать. Для получения более подробной информации мы можем обратиться к официальная документация и раздел помощи добавление -Помогите к имени файлового менеджера.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Убунлог » Ubuntu » Pip, основы и управление пакетами Python
Комментарий, оставьте свой
Оставьте свой комментарий Отменить ответ

Хулиуко Никеладо сказал
Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.069 секунд. Запросов: 25.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Как полностью удалить пакет вместе с зависимостями в Arch Linux (а также Manjaro и BlackArch)

В данной инструкции в качестве программы для управления пакетами (удаления) используется pacman, но вместо неё вы также можете использовать и pikaur или yay, поскольку рассматриваемые опции одинаковые для всех данных менеджеров пакетов.
Типичная команда для удаления программы, которая удалит все файлы пакета:
sudo pacman -R ПАКЕТ
Она действительно удалит указанный пакет, но при этом останутся конфигурационные файлы пакета, которые будут переименованы — добавлено расширение .pacsave, а также останутся зависимости, которые были установлены для данного пакета.
Чтобы полностью удалить программу вместе со всеми зависимостями и не сохраняя конфигурационные файлы, используйте команду вида:
sudo pacman -Rscun ПАКЕТ
В этой команде используются следующие опции:
-c, —cascade
Удалить все целевые пакеты, а также все пакеты, которые зависят от одного или более целевых пакетов. Эта операция рекурсивна и должна использоваться осторожна, поскольку она может удалить много потенциально нужных пакетов.
-n, —nosave
Инструктирует pacman игнорировать резервные копии конфигурационных файлов. Обычно, когда файл удаляется из системы, по базе данных проверяется, должен ли конфигурационный файл быть переименован (к нему добавляется расширение .pacsave). При использовании данной опции, это не происходит — конфигурационные файлы полностью удаляются.
-s, —recursive
Удаляет каждую указанную цель, включая все её зависимости, при условии, что: (A) они не требуются другими пакетами; и (B) они не были установлены явно установлены пользователем. Эта операция рекурсивна и аналогична обратной операции —sync, и это помогает хранить систему в чистоте без сироток. Если вы хотите пропустить условие (B), напишите опцию дважды.
-u, —unneeded
Удаляет цели, которые не требуются другими пакетами. Это преимущественно полезно при удалении группы без использования опции -c чтобы избежать поломки любых зависимостей.
Материалы по теме:
- Практические примеры использования pacman
- Pacman: работа с пакетами в BlackArch (перевод справки и мануала)
- Автоматическая установка и обновление пакетов AUR
