Менеджер пакетов pip

Введение

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



Терминология

  • «Дистрибутив» - то, что pip может установить;
  • «Пакет» - то, что можно использовать в операторах импорта. Большинство дистрибутивов включают один пакет с тем же именем, что и дистрибутив но есть исключения;
  • «Wheel» - это специальный файл с суффиксом .whl;
  • Установка wheel просто копирует файлы в нужную директорию без компиляции и обработки.

Примеры

  • Установка пакетов

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

    pip install requests

    

    Установка пакета из локального файла wheel

    pip install requests-2.22.0-py2.py3-none-any.whl

    

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

    pip install git+https://github.com/psf/requests.git

    

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

    pip install /home/user/src/requests

    

    

    

  • Удаление пакетов

    Чтобы удалить пакет:

    pip uninstall SomePackage 
  • Список установленных пакетов

    Вывод списка пакетов, установленных через pip

    pip list
  • Пакеты обновления

    Бег

     $ pip install --upgrade SomePackage 
    
     

    обновит пакет SomePackage и все его зависимости. Кроме того, pip автоматически удаляет старую версию пакета перед обновлением.

    Чтобы обновить сам пункт, сделайте

     $ pip install --upgrade pip
    
     

    в Unix или

     $ python -m pip install --upgrade pip
    
     

    на машинах Windows.

  • Обновление всех устаревших пакетов в Linux

    pip не ток содержит флаг , чтобы позволить пользователю обновить все устаревшие пакеты в одном кадре. Тем не менее, это может быть достигнуто путем объединения команд в среде Linux:

     pip list --outdated --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U
    
     

    Эта команда принимает все пакеты в локальном virtualenv и проверяет, устарели ли они. Из этого списка, он получает имя пакета , а затем трубы , которые в pip install -U команду. В конце этого процесса все локальные пакеты должны быть обновлены.

  • Обновление всех устаревших пакетов в Windows

    pip не ток содержит флаг , чтобы позволить пользователю обновить все устаревшие пакеты в одном кадре. Тем не менее, это может быть достигнуто путем объединения команд в среде Windows:

     for /F "delims= " %i in ('pip list --outdated --local') do pip install -U %i
    
     

    Эта команда принимает все пакеты в локальном virtualenv и проверяет, устарели ли они. Из этого списка, он получает имя пакета , а затем трубы , которые в pip install -U команду. В конце этого процесса все локальные пакеты должны быть обновлены.

  • Создайте файл require.txt для всех пакетов в системе

    pip помогает в создании requirements.txt файлов, предоставляя freeze опцию.

     pip freeze > requirements.txt
    
     

    Это позволит сохранить список всех пакетов и их версию , установленный на систему в файл с именем requirements.txt в текущей папке.

  • Создайте файл require.txt из пакетов только в текущем virtualenv

    pip помогает в создании requirements.txt файлов, предоставляя freeze опцию.

     pip freeze --local > requirements.txt
    
     

    --local параметр будет выводить только список пакетов и версий, которые установлены локально на virtualenv. Глобальные пакеты не будут перечислены.

  • Использование определенной версии Python с pip

    Если у вас установлены и Python 3, и Python 2, вы можете указать, какую версию Python вы бы хотели использовать в pip. Это полезно, когда пакеты поддерживают только Python 2 или 3 или когда вы хотите протестировать оба.

    Если вы хотите установить пакеты для Python 2, запустите:

     pip install [package]
    
     

    или же:

     pip2 install [package]
    
     

    Если вы хотите установить пакеты для Python 3, выполните:

     pip3 install [package]
    
     

    Вы также можете запустить установку пакета для конкретной установки Python с помощью:

     \path\to\that\python.exe -m pip install some_package # on Windows OR
    /usr/bin/python25 -m pip install some_package # on OS-X/Linux
    
     

    На платформах OS-X / Linux / Unix важно помнить о различии между системной версией python (обновление которой делает вашу систему неработоспособной) и пользовательской версией (версиями) python. Вы можете, в зависимости от которого вы пытаетесь обновить, необходимо префикс эти команды с sudo и ввода пароля.

    Аналогично, в Windows некоторые установки python, особенно те, которые являются частью другого пакета, могут в конечном итоге быть установлены в системные каталоги - те, которые вам придется обновить из командного окна, работающего в режиме администратора, - если вы обнаружите, что вам нужно сделать это , это очень хорошая идея , чтобы проверить , какой питон установки вы пытаетесь обновить с помощью команды , например python -c"import sys;print(sys.path);" или py -3.5 -c"import sys;print(sys.path);" Вы также можете проверить , какой пип вы пытаетесь запустить с pip --version

    В Windows, если у вас есть как Python 2 и установлен Python 3, и на вашем пути и вашего питона 3 больше , чем 3,4 , то вы, вероятно , также есть питон пусковая py на вашем системном пути. Затем вы можете делать такие трюки, как:

     py -3 -m pip install -U some_package # Install/Upgrade some_package to the latest python 3
    py -3.3 -m pip install -U some_package # Install/Upgrade some_package to python 3.3 if present
    py -2 -m pip install -U some_package # Install/Upgrade some_package to the latest python 2 - 64 bit if present
    py -2.7-32 -m pip install -U some_package # Install/Upgrade some_package to python 2.7 - 32 bit if present
    
     

    Если вы работаете и поддерживать несколько версий питона я настоятельно рекомендую прочитать до о питона virtualenv или venv виртуальных окружающих средах , которые позволяют выделить как версию питона и пакеты , которые присутствуют.

  • Установка пакетов еще не на пипе, как колеса

    Многие чистые пакеты python еще не доступны в индексе пакетов Python в виде колес, но все равно устанавливаются нормально. Однако некоторые пакеты в Windows выдают ужасную ошибку vcvarsall.bat not found.

    Проблема заключается в том, что пакет , который вы пытаетесь установить , содержит C или расширение C ++ и не в настоящее время доступно в качестве встроенного колеса с индексом питона пакета, PyPI, а на окнах не имеет цепочки инструментов , необходимую для создания такие предметы.

    Самый простой ответ должен пойти на Кристофа Gohlke в отличном месте и найти соответствующую версию библиотеки , которые вам нужны. При необходимости в пакете назвать -cp *** NN * - должно соответствовать вашей версии питона, то есть , если вы используете Windows 32 разрядного питона даже на Win64 имя должны включать -win32- и при использовании 64 - битный питона его должна включать в себя -win_amd64- , а затем версия питона должен соответствовать, то есть для Python 34 файла должно включать в себя -cp * 34 - *** и т.д. , это в основном магия , что пип делает для вас на сайте PyPi.

    Кроме того, вам нужно получить соответствующий комплект разработки для Windows для используемой версии python, заголовки для любой библиотеки, к которой интерфейс пытается подключить пакет, возможно, заголовки python для версии python и т. Д.

    Python 2.7 использовал Visual Studio 2008, Python 3.3 и 3.4 использовал Visual Studio 2010, а Python 3.5+ использует Visual Studio 2015.

    • Установить « Visual C ++ Compiler пакет для Python 2.7 », которая доступна на веб - сайте Microsoft или
    • Установка « Windows SDK для Windows 7 и .NET Framework 4 » (v7.1), которая доступна на веб - сайте Microsoft или
    • Установка Visual Studio 2015 Community Edition , (или более поздней версии, когда они будут освобождены), гарантируя вам не выбрать опции для установки Поддержка C & C ++ больше не по умолчанию - Мне сказали , что это может занять до 8 часов , чтобы загрузить и установить поэтому убедитесь , что эти параметры установлены на первую попытку.

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

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

    Альтернативы: Кроме того , стоит глядя, как на PyPI или сайте Christop, за любой чуть более ранней версии пакета , который вы ищете , что в чистом виде питона или предварительно построенный для вашей платформы и питона версии и , возможно , с помощью тех, если найдено, пока ваша посылка не станет доступной. Точно так же , если вы используете самую последнюю версию питона вы можете обнаружить , что он принимает сопровождающим пакета немного времени , чтобы догнать так и для проектов , которые действительно нуждаются в конкретный пакет , который вы , возможно , придется использовать немного старше питона на данный момент. Вы также можете проверить исходный сайт пакетов, чтобы увидеть, есть ли разветвленная версия, которая доступна в готовом виде или в виде чистого Python, и найти альтернативные пакеты, которые предоставляют функции, которые вам необходимы, но доступны - один из примеров, который приходит на ум, это Подушка , активно поддерживается, падение в замене для PIL в настоящее время не обновляется в течение 6 лет и не доступны для Python 3.

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

    Примечание по установке предварительных выпусков

    Пип следует правилам семантического Поддержка версий и по умолчанию предпочитает выпустил пакеты по пре-релизам. Так что, если данный пакет был выпущен как V0.98 , и есть релиз - кандидат V1.0-rc1 поведение по умолчанию pip install будет установить V0.98 - если вы хотите установить релиз - кандидат, рекомендуется для тестирования в виртуальной среде , во- первых, вы можете включить это сделать с --pip install --pre имя-пакета или --pip install --pre --upgrade имя-пакета. Во многих случаях в предварительных выпусках или у кандидатов на выпуск могут не быть колес, созданных для всех комбинаций платформы и версии, поэтому вы с большей вероятностью столкнетесь с вышеуказанными проблемами.

    Замечание по установке версий разработки

    Вы также можете использовать pip для установки разрабатываемых версий пакетов из github и других местоположений, поскольку такой код постоянно обновляется, маловероятно, что для него будут созданы колеса, поэтому любые нечистые пакеты потребуют наличия инструментов сборки, и они могут быть расторгнута в любое время , поэтому пользователю настоятельно рекомендуется устанавливать только такие пакеты в виртуальной среде.

    Для таких установок существует три варианта:

    1. Загрузка сжатого снимка, большинство систем контроля версий в Интернете имеют возможность загрузить сжатый снимок кода. Это можно загрузить вручную и затем устанавливается с pip install путь / к / загруженному / примечанию файла, для большинства форматов сжатия пипа будет обрабатывать распаковки в области кэша и т.д.

Синтаксис

Интерфейс использования:
pip <command> [options]

Команды:
install Установка пакетов.
download Скачивание пакетов.
uninstall Удаление пакетов.
freeze Вывод установленных пакетов в формате файла зависимостей.
list Вывод списка установленных пакетов.
show Вывод информации об установленных пакетах.
check Проверка совместимости установленных пакетов с их зависимостями.
config Управление локальной и глобальной конфигурацией.
search Поиск пакетов в PyPI.
wheel Сборка wheel из зависимостей.
hash Вычисление хешей из hashes of package archives.
completion Вспомогательная команда для автодополнения командной строки.
debug Вывод информации применимой для отладки.
help Вывод справки по командам.

Общие опции:
-h, --help Вывод справки.
--isolated Запуск pip в изолированном режиме, с игнорированием переменных окружения и пользовательскую конфигурацию.
-v, --verbose Расширенный вывод. Опция аддитивная и может использоваться до 3 раз.
-V, --version Вывод версии.
-q, --quiet Сокращенный вывод. Опция аддитивная и может использоваться до 3 раз (соответствует уровням логирования WARNING, ERROR, и CRITICAL).
--log <path> Путь инкрементального вывода логов.
--proxy <proxy> Настройки прокси в форме [user:passwd@]proxy.server:port.
--retries <retries> Максимальное количество попыток, которое должно предпринять каждое соединение (по умолчанию 5 раз).
--timeout <sec> Установить время ожидания сокета (по умолчанию 15 секунд).
--exists-action <action> Действие по умолчанию, когда путь уже существует: (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort.
--trusted-host <hostname> Пометить хост как доверенный, в случае если HTTPS хоста инвалидный.
--cert <path> Путь к альтернативному комплекту CA.
--client-cert <path> Путь к сертификату клиента SSL, отдельный файл, содержащий закрытый ключ и сертификат в формате PEM.
--cache-dir <dir> Настройка директории кеширования данных.
--no-cache-dir Отключение кеша.
--disable-pip-version-check Отключение периодической проверки PyPI на доступность новой версии pip.
--no-color Подавление цветного вывода.

Параметры

Примечания

При необходимости, pip выполняет компиляцию нативного кода. В Linux Python автоматически выберет доступный компилятор C в вашей системе.