Установка pip

На 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. Но лучше воспользоваться более длинной командой, которая гарантировано вызовет самую свежую установленную версию pip для нужной версии Python — в системе уже может быть установлен Py2 с соответствующей версией pip, как правило, довольно старой.

Вызываем pip:

$ python3 -m pip --version

При показе своей версии pip также сообщает, куда установлен он сам и на какой версии Python он был запущен.

Pakages

Простота интерфейса командной строки, позволяет установить пакеты 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 установит пакет в общесистемное окружение. Старайтесь не делать так!

pip, точки входа и PATH

Установленный пакет 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

Установка пакетов из репозиториев на GitHub

допустим пакет ещё совсем "сырой", но при этом нужно проверить, как пакет работает и устанавливается ли вообще. В подобных случаях пакеты устанавливают прямо из 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!) можно очень гибко, Подробнее можно почитать тут.