- Управление Python пакетами с помощью pip
- Поиск пакетов Python
- На что нужно обратить внимание?
- Установка пакетов Python с помощью pip
- Получение списка установленных Python пакетов
- Визуализация установленных пакетов
- Установка пакетов Python из файла requirements.txt
- Удаление пакетов Python с помощью Pip
- How to Uninstall Python Packages
- Checklist
- How to Uninstall Packages Installed with Pip
- How to Uninstall Packages in a Python Virtual Environment
- How to Globally Uninstall Python Packages
- How to Uninstall Package Dependencies with Pip
- How to Uninstall Package Dependencies with Pipenv
- How to Uninstall a Package Installed With Setuptools
- Next Steps
Управление Python пакетами с помощью pip
Данная статья является пошаговым введением в базовые навыки управления пакетами Python с помощью команды pip. В ней будут освещены следующие моменты:
- Поиск пакетов
- На какую информацию следует обратить внимание в пакете
- Установка пакетов
- Визуализация установленных пакетов
- Установка пакетов из файла requirements.txt
- Удаление пакетов с помощью pip
Поиск пакетов Python
Рассмотрим случай использования пакета emoji в качестве примера. Для поиска Python пакетов, связанных с emoji, перейдём на веб сайт PyPi и через окно поиска в правом верхнем углу страницы поищем emoji.
Обратите внимание на колонку «Weight*» в середине таблицы. Это ключевая информация. Значение веса – это специфический рейтинг, который сайт рассчитывает для каждого пакета, чтобы ранжировать результаты поиска.
Согласно самому сайту, то рейтинг вычисляется на основе полей: имя, сводка, ключевые слова, описание, автор, мейнтейнер. Означает ли что найден лучший пакет? Не обязательно. Несмотря на необычность, сторонние пакеты своим присутствием могут затенять emoji.
Напротив, многие разработчики не удосуживаются заполнять все поля для своих пакетов, что приводит к тому, что эти пакеты занимают более низкие позиции.
В какой среде будет работать emoji? Приложение на основе терминала или, возможно, веб-приложение Django? Если нужно отобразить emoji в веб-приложении django, то лучше воспользоваться пакетом django-emoji. Для нашего случая предпочтительным вариантом является emoji для Python приложения командной строки.
На что нужно обратить внимание?
Далее приведены характеристики хорошего пакета Python:
- Достойная документация: прочитав её, сразу становится понятно, соответствует ли пакет потребности или нет;
- Зрелость и стабильность: если он существует уже продолжительное время, а также последними версиями;
- Количество контрибьюторов: востребованные пакеты (особенно сложные), как правило, контрибьютятся большим количеством разработчиков;
- Техническое обслуживание: он регулярно проходит техническое обслуживание.
Не стоит слишком полагаться на статус разработки, указанный для каждого пакета, то есть пакет может иметь баллы стабильности, например, 4 — Beta или 5 — Production / Stable. Эта классификация заполняется самим разработчиком и не обязательно должна быть правдивой.
На нашем случае документация выглядит достаточно прилично. В верхней части страницы показано графическое представление работы пакета emoji в интерпретаторе Python.
>> import emoji >> print(emoji.emojize('Python is :thumbs_up_sign:')) Python is 👍 >> print(emoji.emojize('Python is :thumbsup:', use_aliases=True)) Python is 👍
Документация для пакета emoji также рассказывает об его установке, как внести свой вклад в разработку, а также ссылку на страницу с исходниками, что является отличным источником полезной информации о нём.
Установка пакетов Python с помощью pip
Предполагается, что Python уже установлен в вашей системе. Далее нужно проверить, установлен ли pip, запустив pip -version в терминале.
C:\Users\prog>pip --version pip 9.0.1 from c:\python\lib\site-packages (python 3.6)
Начиная с Python 3.4, pip входит в комплект поставки.
Также рекомендуется использовать виртуальную среду для управление рабочим процессом разработки и упрощения работы над несколькими проектами одновременно без возникновения конфликтов в их зависимостях.
Отличное вариант для начала изучения консольной программы — это запустить её без каких-либо опций в терминале.
Рассмотрим команду freeze, которая является ключевой в разрешении зависимостей. Запуск pip freeze отображает список всех установленных пакетов Python. Если выполнить с инструкцию с активной виртуальной средой, то будет распечатан пустой список
Для установки пакета, выполним pip install emoji в терминале. В результате будет получен следующий вывод:
C:\Users\prog>pip install emoji==0.4.5 Collecting emoji==0.4.5 Downloading emoji-0.4.5.tar.gz Installing collected packages: emoji Running setup.py install for emoji . done Successfully installed emoji-0.4.5
При установке пакетов с помощью pip можем ограничить выборку установив предпочтительную версию предпочтения, используя следующие операторы:
Конкретная версия пакета (==):
Версия, отличная от указанной (! =):
Версия, равная или превышающая конкретную версию (> =):
Версия пакета в указанном диапазоне (> = X.Y.T,
Как правило, наиболее полезным спецификатором является == для установки конкретной версии пакета. Если не будет ограничения, то будет установлена последняя версия пакета.
Запустим pip freeze после установки пакета emoji.
Теперь pip freeze отображает пакет emoji как установленная зависимость с определенным номером версии.
Получение списка установленных Python пакетов
Для выгрузки установленных пакетов в файл requirements.txt выполним программу pip freeze с перенаправлением выходного потока в файл.
pip freeze > requirements.txt
Визуализация установленных пакетов
Добавим пакет pipdeptree в нашу виртуальную среду, который отображает дерево зависимостей пакетов. Продолжим установку последней версии, выполнив следующую команду:
После установки пакета запустим процесс freeze, чтобы удостовериться в его установки:
pip freeze emoji==0.4.5 Pillow==5.0.0 pipdeptree==0.10.1
Теперь запустим pipdeptree в терминале, чтобы узнать, что он делает.
C:\Users\prog>pipdeptree emoji==0.4.5 Pillow==5.0.0 pipdeptree==0.10.1 - pip [required: >=6.0.0, installed: 9.0.1] setuptools==28.8.0
В результате получаем более информативный вывод, включая зависимости и минимальные версии, необходимые для правильной работы зависимых пакетов.
Также замечаем другие пакеты, которые отсутствуют в списке freeze – pip и setuptools. Причина в том, что по умолчанию pip freeze не перечисляет пакеты, от которых зависит сам pip.
Теперь запустим pip freeze -all для отображения всех установленных пакетов:
C:\Users\prog>pip freeze --all emoji==0.4.5 Pillow==5.0.0 pip==9.0.1 pipdeptree==0.10.1 setuptools==28.8.0
Ещё одно преимущество использования pipdeptree заключается в том, что она предупреждает нас о конфликтующих зависимостях, в том числе о циклических (когда пакеты зависят друг от друга), но это очень редко встречающийся случай.
Установка пакетов Python из файла requirements.txt
Если есть файл requirements.txt, то можно установить все перечисленные там пакеты, выполнив следующую команду:
pip install -r /dir/to/the/file/requirements.txt
Это очень удобно, когда нужно реплицировать виртуальные среды на другие компьютеры.
Удаление пакетов Python с помощью Pip
Удаление отдельных пакетов Вы можете сделать это, запустив, например, pip uninstall alembic.
Также допустимо удаление нескольких пакетов сразу, используя следующий синтаксис командной строки:
pip uninstall package1 package2 .
Другим вариантом является чтение списка пакетов для удаления из файла requirements.txt. Как и у его установочного варианта, если есть файл requirements.txt, то можно удалить все перечисленные там пакеты аналогично:
pip uninstall -r /dir/to/the/file/requirements.txt
Если попытаться выполнить эту инструкцию программа покажет множество предупреждений и спросит продолжать несколько раз (по одному разу для каждого пакета), на который нужно ответить y. Чтобы избежать этого, используя флаг -y:
pip uninstall -y -r requirements.txt
How to Uninstall Python Packages
All Python package management solutions provide the basic function of uninstalling packages, including pip, pipenv and the ActiveState Platform. However, unless specifically defined in a requirements.txt or pipfile.lock, package managers will not deal with transitive dependencies (ie., dependencies of dependencies).
In this article, we explain how to uninstall Python packages using these popular tools and we also introduce you to the ActiveState Platform. The AS Platform is unique in automatically installing and uninstalling transitive dependencies. Our dependency management system makes it possible to track conflicts between packages, know about platform-specific dependencies, and even track system-level dependencies like C and C++ libraries. Once you are done reading, you can try the ActiveState Platform by signing up for a free account .
Read on to understand how to work with Pip and Pipenv Package Managers to uninstall Python packages.
Checklist
Before packages can be uninstalled, ensure that a Python installation containing the necessary files needed for uninstalling packages is in place. Installation Requirements (for Windows).
How to Uninstall Packages Installed with Pip
How to Uninstall Packages in a Python Virtual Environment
Packages can be uninstalled from a virtual environment using pip or pipenv.
To use pip to uninstall a package locally in a virtual environment:
- Open a command or terminal window (depending on the operating system)
- cd into the project directory
- pip uninstall
To use pipenv to uninstall a package locally in a virtual environment created with venv or virtualenv:
- Open a command or terminal window (depending on the operating system)
- cd into the project directory
- pipenv uninstall
How to Globally Uninstall Python Packages
In some cases, packages may be installed both locally (e.g., for use in a specific project) and system-wide. To ensure a package is completely removed from your system after you’ve uninstalled it locally, you’ll also need to uninstall it globally.
To uninstall a package globally in Windows:
-
- Open a command window by entering ‘cmd’ in the Search Box of the Task bar
- Press Ctrl+Shift+Enter to gain Administration (Admin) privileges
- pip uninstall
To uninstall a package globally in Linux:
How to Uninstall Package Dependencies with Pip
When you install a package with pip, it also installs all of the dependencies the package requires. Unfortunately, pip does not uninstall dependencies when you uninstall the original package. Here are a couple of different procedures that can be used to uninstall dependencies.
- If a package has been installed via a pip requirements file (i.e., pip install requirements.txt ), all of the packages in requirements.txt can be uninstalled with the following command:
pip uninstall requirements.txt
- If a requirements.txt file is not available, you can use the pip show command to output all the requirements of a specified package:
Output should be similar to:
These dependencies can then be uninstalled with the pip uninstall command. However before uninstalling, you should ensure that the packages are NOT dependencies for other existing packages.
How to Uninstall Package Dependencies with Pipenv
To uninstall all the dependencies in a Pipenv project:
- Open a command or terminal window
- cd into the project directory
- pipenv uninstall —all
How to Uninstall a Package Installed With Setuptools
Any packages that have been configured and installed with setuptools used the following command:
Unfortunately, there is no python setup.py uninstall command. To uninstall a package installed with setup.py, use the pip command:
Be aware that there are a few exceptions that cannot be uninstalled with pip, including:
- Distutils packages, which do not provide metadata indicating which files were installed.
- Script wrappers installed by the setup.py develop command.
Next Steps
Resolving packages when installing or uninstalling an environment can be an extremely slow (or even manual) process. You can speed things up considerably using the ActiveState Platform, which automatically resolves dependencies for you–fast! Get started free on the ActiveState Platform.
Or just install Python 3.9 and use the included command line interface, the State Tool, to “state install” the packages you need:
>state install numpy ╔════════════════════╗ ║ Installing Package ║ ╚════════════════════╝ Updating Runtime ──────────────── Changes to your runtime may require some dependencies to be rebuilt. numpy includes 2 dependencies, for a combined total of 8 new dependencies. Building 8/8 Installing 8/8 Package added: numpy