Как удалить библиотеку с Python?
При ходе создание скрипта были скачаны в итоге не нужные библиотеки, все библиотеки скачаны с помощью pip. Как удалить библиотеки, и можно ли как то одной командой вернуть библиотеки до дефолдных настроек?
Пробовал так, pip freeze — получил все установленные библиотеки и пытался их удалить с помощью pip unistall, но в итоге ничего не получилось, так как команды unistall нету, также пробовал remove и delete, но этих команд также нету.
- Вопрос задан более года назад
- 1853 просмотра
Самый простой способ удалить все пакеты Python установленные через pip
Речь про пакеты установленные через pip глобально. В моем случае под WIndows 10, но этот способ также будет работать и под Linux и должно работать под макосью.
pip freeze > 1.txt
pip uninstall — y — r 1.txt
Здесь pip freeze выводит список всех установленных пакетов. pip install удаляет заданный пакет, а с аргументом -r удаляет по списку. Аргумент -y избавляет от необходимости соглашаться ручками в консоли при удалении каждого из пакетов в списке.
Как удалить пакеты которые не используются в проекте из виртуального окружения?
Доброе время суток, подскажите пожалуйста столкнулся с такой проблемой.
Когда отдаю проект админам я все используемые пакеты в venv записываю в requirements.txt
Они там накатывают проект используя pip3 install -r requirements.txt
В чем суть вопроса: в ходе разработки приложения, я устанавливаю какой то пакет что то пробую, иногда что то не получается или другой пакет для решения данной задачи подходит лучше. И часто разработчики забывают удалять этот пакет. Он остается в зависимостях в venv и соответственно попадает в requirements.txt. Админы накатывают этот пакет хотя реально он там и не используется.
Вопрос, можно ли как то автоматически выявить такие пакеты и избавится от них?
Например автоматически деинсталировать их что бы они не попадали в requirements.txt
Тут наверное нужна какая то штука которая бы анализировала импорты в файлах проекта.
Но что то такова я не нашел.
- Вопрос задан 27 мая 2023
- 307 просмотров
Комментировать
Решения вопроса 1

Потому что надёжного метода анализа зависимостей нет.
Импорты в питоне могут быть условными, выполняться в разное время, или вообще выполняться динамически через importlib.
Я бы сказал, вспомнить, какие пакеты тебе требуются, очистить окружение, поставить их, погонять приложение и пособирать недостающее.
А на будущее — когда тестируешь пакет, делай отдельную ветку в системе управления версиями, и отдельное окружение. Только когда пакет устоялся, делаешь merge.
Библиотеки Python с областью действия записной книжки
Библиотеки с областью действия записной книжки позволяют создавать, изменять, сохранять, повторно и совместно использовать пользовательские среды Python, относящиеся к записной книжке. При установке библиотеки с областью действия записной книжки доступ к этой библиотеке имеют только текущая записная книжка и все задания, связанные с этой записной книжкой. На другие записные книжки, подключенные к тому же кластеру, это не повлияет.
Библиотеки, область действия которых ограничена записной книжкой, не сохраняются в сеансах. Необходимо переустанавливать библиотеки, область действия которых ограничена записной книжкой, в начале каждого сеанса или при отсоединении записной книжки от кластера.
Databricks рекомендует использовать магическую %pip команду для установки библиотек Python с область записной книжкой.
Записные книжки, запланированные в качестве заданий, можно использовать %pip в записных книжках. Если вам нужно управлять средой Python в записной книжке Scala, SQL или R, используйте магическую %python команду в сочетании с %pip .
При работе с установками библиотеки область записной книжки может возникнуть больше трафика на узел драйвера. Узнайте, насколько большой узел драйвера должен быть при работе с библиотеками записных книжек область?.
Чтобы установить библиотеки для всех записных книжек, подключенных к кластеру, используйте библиотеки кластера. Дополнительные сведения см. в статье Библиотеки кластера.
В Databricks Runtime 10.5 и ниже можно использовать служебную программу библиотеки Azure Databricks. Программа библиотеки поддерживается только в Databricks Runtime, а не Databricks Runtime ML. См. служебную программу библиотеки (dbutils.library) (устаревшую версию).
Управление библиотеками с помощью команд %pip
Команда %pip эквивалентна команде pip и поддерживает тот же API. В следующих разделах приведены примеры использования команд %pip для управления средой. Для получения дополнительной информации об установке пакетов Python с использованием pip см. документацию по установке pip и связанные с ней страницы.
- Начиная с команд Databricks Runtime 13.0 %pip не перезапускать процесс Python автоматически. Если вы устанавливаете новый пакет или обновляете существующий пакет, может потребоваться использовать dbutils.python.restartPython() для просмотра новых пакетов. См . статью «Перезапуск процесса Python» в Azure Databricks.
- В Databricks Runtime 12.2 LTS и ниже Databricks рекомендует размещать все %pip команды в начале записной книжки. Состояние записной книжки сбрасывается после выполнения любой команды %pip , которая изменяет среду. Если вы создаете методы или переменные Python в записной книжке, а затем используете команды %pip в более поздней ячейке, эти методы или переменные не сохраняются.
- Обновление, изменение или удаление основных пакетов Python (например, IPython) с помощью %pip может привести к тому, что некоторые функции перестанут работать должным образом. При возникновении таких проблем сбросьте среду, отключив и повторно присоединив записную книжку или перезапустив кластер.
Установка библиотеки с помощью %pip
%pip install matplotlib
Установка пакета колес Python с помощью %pip
%pip install /path/to/my_package.whl
Удаление библиотеки с помощью %pip
Вы не можете удалить библиотеку, включенную в заметки о выпуске Databricks Runtime, версии и совместимость или библиотеку, установленную в качестве библиотеки кластера. Если установлена версия библиотеки, отличная от версии, входящей в Databricks Runtime или установленной в кластере, можно использовать %pip uninstall для возврата библиотеки к версии по умолчанию в Databricks Runtime или версии, установленной в кластере, но нельзя использовать команду %pip для удаления версии библиотеки, входящей в Databricks Runtime или установленной в кластере.
%pip uninstall -y matplotlib
Параметр -y является обязательным.
Установка библиотеки из системы управления версиями с помощью %pip
%pip install git+https://github.com/databricks/databricks-cli
Вы можете добавить параметры в URL-адрес, чтобы указать такие элементы, как версия или подкаталог Git. Для получения дополнительной информации и примеров использования других систем управления версиями см. Поддержка VCS.
Установка частного пакета с учетными данными, управляемыми секретами Databricks с помощью %pip
PIP поддерживает установку пакетов из частных источников с помощью базовой аутентификации, включая закрытые системы управления версиями и закрытые репозитории пакетов, такие как Nexus и Artifactory. Управление секретами доступно через API секретов Databricks, который позволяет хранить маркеры и пароли аутентификации. Используйте DBUtils API для доступа к секретам из записной книжки. Обратите внимание, что в магических командах можно использовать $variables .
Чтобы установить пакет из частного репозитория, укажите URL-адрес репозитория с параметром —index-url до %pip install или добавьте его в файл конфигурации pip в ~/.pip/pip.conf .
token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://:$token@.com/ == --extra-index-url https://pypi.org/simple/
Аналогичным образом можно использовать управление секретами с помощью магических команд для установки частных пакетов из систем управления версиями.
token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://:$token@.com/
Установка пакета из DBFS с помощью %pip
С помощью %pip можно установить частный пакет, сохраненный в DBFS.
При отправке в DBFS файл автоматически переименовывается, заменяя пробелы, точки и дефисы символами подчеркивания. Для файлов pip колес Python требуется, чтобы имя файла использовало периоды в версии (например, 0.1.0) и дефисы вместо пробелов или подчеркивания, поэтому эти имена файлов не изменяются.
%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl
Установка пакета из тома с помощью %pip
С помощью Databricks Runtime 13.2 и более поздних версий можно установить %pip частный пакет, сохраненный в томе.
При отправке файла в том он автоматически переименовывает файл, заменяя пробелы, точки и дефисы подчеркиванием. Для файлов pip колес Python требуется, чтобы имя файла использовало периоды в версии (например, 0.1.0) и дефисы вместо пробелов или подчеркивания, поэтому эти имена файлов не изменяются.
%pip install /Volumes////mypackage-0.0.1-py3-none-any.whl
Установка пакета, хранящегося в виде файла рабочей области с помощью %pip
С помощью Databricks Runtime 11.3 LTS и более поздних версий можно установить %pip частный пакет, сохраненный в виде файла рабочей области.
%pip install /Workspace//mypackage-0.0.1-py3-none-any.whl
Сохранение библиотек в файле требований
%pip freeze > /dbfs/requirements.txt
Все подкаталоги в пути к файлу должны уже существовать. Выполнение команды %pip freeze > /dbfs//requirements.txt завершится ошибкой, если каталог /dbfs/ еще не существует.
Использование файла требований для установки библиотек
Файл требований содержит список пакетов к установке с помощью pip . Пример использования файла требований:
%pip install -r /dbfs/requirements.txt
См. Формат файла требований для получения дополнительной информации о requirements.txt файлах.
Насколько большой узел драйвера должен быть при работе с библиотеками записных книжек область?
Использование библиотек с областью записной книжки может привести к большему объему трафика на узел драйвера, так как он работает для согласования среды между узлами исполнителя.
При использовании кластера с 10 или более узлами в Databricks рекомендуется использовать следующие спецификации в качестве минимальных требований для узла драйвера:
- Для узла кластера ЦП 100 используйте Standard_DS5_v2.
- Для узла кластера GPU 10 используйте Standard_NC12.
Для кластеров большего объема используйте узел драйвера большего размера.
Можно ли использовать %sh pip , !pip или pip ? Что такое разница?
%sh и ! выполните команду оболочки в записной книжке; прежнее — это вспомогательное магическое действие Databricks, а последнее — функция IPython. pip — это сокращенное значение %pip при включении автомагии , которое используется по умолчанию в записных книжках Python Для Azure Databricks.
В Databricks Runtime 11.0 и более поздних версиях %pip , %sh pip , и !pip устанавливают библиотеку как библиотеку Python с областью действия записной книжки. В Databricks Runtime 10.4 LTS и ниже Databricks рекомендует использовать только библиотеки %pip pip с область записной книжкой. Поведение %sh pip и !pip не согласовано в Databricks Runtime 10.4 LTS и ниже.
Известные проблемы
- В Databricks Runtime 10.3 и более ранних версий библиотеки с областью действия записной книжки несовместимы с заданиями пакетной потоковой передачи. Вместо них рекомендуется использовать библиотеки кластера или ядро IPython.