Введение

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:[email protected]]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 в вашей системе.