Как удалить пакеты которые не используются в проекте из виртуального окружения?

Чтобы удалить неиспользуемые пакеты из виртуального окружения в Python, вы можете использовать инструмент pip.

1. Активируйте виртуальное окружение, в котором вы хотите удалить неиспользуемые пакеты. Выполните команду:

source <имя_виртуального_окружения>/bin/activate

2. Затем, выполните команду pip freeze, чтобы получить список всех установленных пакетов и их версий:

pip freeze

Эта команда выведет список пакетов в терминал.

3. Сохраните вывод команды pip freeze в файл. Например, вы можете использовать следующую команду:

pip freeze > requirements.txt

Файл requirements.txt будет содержать список установленных пакетов.

4. Запустите ваше приложение или проект и проверьте, какие пакеты действительно используются. На этом этапе убедитесь, что вы выполните все необходимые действия для полного покрытия функциональности вашего проекта.

5. После выполнения проекта, выполните команду pip freeze снова, но на этот раз сохраните результат в другой файл. Например:

pip freeze > requirements2.txt

6. Теперь сравните содержимое обоих файлов requirements.txt и requirements2.txt, чтобы определить разницу в установленных пакетах. Например, вы можете использовать команду diff в Linux/Mac или одно из множества доступных инструментов на других ОС.

7. Измените файл requirements.txt и удалите пакеты, которые не были найдены во втором файле. Сохраните изменения.

8. Наконец, выполните команду pip uninstall -r requirements.txt для удаления пакетов, которые больше не используются в проекте:

pip uninstall -r requirements.txt

Это удалит все пакеты, указанные в файле requirements.txt, которые не были найдены во втором файле.

Обратите внимание, что процедура описанная выше является ручной и требует некоторых дополнительных действий. Она хороша для проектов с небольшим числом пакетов, но может быть гораздо более сложной и трудоемкой для крупных проектов с большим количеством зависимостей. В таких случаях рекомендуется использовать инструменты для управления зависимостями, такие как pipenv или poetry, которые автоматически отслеживают и удаляют неиспользуемые пакеты.