На macOS и Windows PiP идёт в одной коробке с интерпретатором Python. На Ubuntu его нужно поставить отдельно:
$ sudo apt update
$ sudo apt install python3-pip
Так же его можно установить при помощи системы
управления пакетами или через cURL, утилиту для загрузки через интернет:
curl https://bootstrap.pypa.io/get-pip.py | python
pip можно запускать непосредственно командой pip.
Но лучше воспользоваться более длинной командой,
которая гарантировано вызовет самую свежую установленную версию pip для нужной версии Python —
в системе уже может быть установлен Py2 с соответствующей версией pip, как правило, довольно старой.
Вызываем pip:
$ python3 -m pip --version
При показе своей версии pip также сообщает, куда установлен он сам и на какой версии Python он был запущен.
Простота интерфейса командной строки,
позволяет установить пакеты Python простой командой:
pip install some-package-name
Так же просто и удалять пакеты:
pip uninstall some-package-name
И ещё несколько полезных команд, например, перечислить установленные пакеты:
$ pip freeze
Показать версию конкретного пакета:
$ pip freeze | grep <PACKAGE>
Найти пакет:
$ pip search "<PACKAGE>"
Список всех доступных версий пакета:
$ pip install <PACKAGE>==
Для примера установим пакет cowsay, но установим в пользовательское окружение. Потому что:
Установка cowsay:
python3 -m pip install cowsay
Далее:
~$ python3
>>> import cowsay
>>> cowsay.cow('hellower')
________
< hellower >
========
\
\
^__^
(oo)\_______
(__)\ )\/\
||----w |
|| ||
>>>
Как видите, пакет — забавный :)
Флаг –-user команды pip install сообщает pip,
что мы хотим установить пакет в
глобальное окружение текущего пользователя.
Если этот флаг не указать,
то pip установит пакет в общесистемное окружение. Старайтесь не делать так!
Установленный пакет cowsay, как мы видели выше, может быть использован из кода. Но этот пакет имеет ещё и так называемую точку входа (или entry point).
Точки входа, это готовые к исполнению программы, содержащиеся в пакете.
Если у пакета есть таковые, то pip создаст для каждой специальный исполняемый скрипт,
который позволит удобно запускать программу из командной оболочки.
Но нужно помнить, что путь до директории, в которую pip помещает такие скрипты
(на Linux это ~/.local/bin) нужно добавить в PATH!
Точка входа, это всегда Python-модуль, пригодный для запуска в роли программы
,такие программы называют ещё исполняемыми файлами.
Создаваемые pip'ом скрипты внутри вызывают python3 -m имя_модуля,
поэтому установленный нами cowsay можно запускать точно также:
~$ python3 -m cowsay pyHello
_______
< pyHello >
=======
\
\
^__^
(oo)\_______
(__)\ )\/\
||----w |
|| ||
pip это тоже точка входа одноимённого пакета pip,
поэтому мы его запускаем командой
python3 -m pip.
так же установить свежий pip можно в пользовательское окружение
( чтобы не сломать системный pip) с помощью команды:
$ python3 -m pip install --user --upgrade pip
Флаг --upgrade позволит обновить уже установленный пакет, если в индексе найдётся более новая версия.
Если вызывать команду pip install с опцией --index-url <url>,
то pip будет искать пакет и все его зависимости в индексе по указанному url.
Установим пакет из специального тренировочного индекса
Test PyPI:
Test PyPI содержит практически все пакеты,
которые есть в основном PyPI,
но в дополнение к --index-url можно указать --extra-index-url <url>.
В такой конфигурации pip ищет каждый пакет
в первом индексе, а если не найдёт,
то обращается ко второму,
дополнительному индексу.
Команда целиком может выглядеть так:
$ python3 -m pip install --user --index-url https://test.pypi.org/simple --extra-index-url https://pypi.org/simple dogesay
допустим пакет ещё совсем "сырой", но при этом нужно проверить, как пакет работает и устанавливается ли вообще. В подобных случаях пакеты устанавливают прямо из git-репозиториев.
К примеру установим с помощью pip наш учебный hexlet-boilerplates/python-package:
$ python3 -m install --user git+https://github.com/hexlet-boilerplates/python-package
Здесь вместо имени пакета указывается тот же url,
что и при клонировании репозитория, но дополненный приставкой git+.
Эта приставка подсказывает pip, что по url расположен Git-репозиторий — не обязательно размещённый на GitHub.
Управлять установкой пакетов из систем контроля версий (pip поддерживает не только Git!) можно очень гибко, Подробнее можно почитать тут.