Поиск…


Вступление

pip является наиболее широко используемым менеджером пакетов для индекса пакетов Python, установленным по умолчанию в последних версиях Python.

Синтаксис

  • pip <command> [options], где <command> является одним из следующих:
    • устанавливать
      • Установка пакетов
    • деинсталляция
      • Удаление пакетов
    • замерзать
      • Выдавать установленные пакеты в формате требований
    • список
      • Список установленных пакетов
    • шоу
      • Показать информацию об установленных пакетах
    • поиск
      • Поиск PyPI для пакетов
    • рулевое колесо
      • Постройте колеса от ваших требований
    • застежка-молния
      • Почтовые индивидуальные пакеты (устаревшие)
    • расстегнуть молнию
      • Распакуйте отдельные пакеты (устаревшие)
    • сверток
      • Создание pybundles (устарело)
    • Помогите
      • Показать справку для команд

замечания

Иногда, pip будет выполнять ручную компиляцию собственного кода. В Linux python автоматически выберет доступный компилятор C в вашей системе. Обратитесь к приведенной ниже таблице для требуемой версии Visual Studio / Visual C ++ в Windows (новые версии не будут работать.).

Версия Python Версия Visual Studio Версия Visual C ++
2.6 - 3.2 Visual Studio 2008 Visual C ++ 9.0
3,3 - 3,4 Visual Studio 2010 Visual C ++ 10.0
3,5 Visual Studio 2015 Visual C ++ 14.0

Источник: wiki.python.org

Установить пакеты

Чтобы установить последнюю версию пакета с именем SomePackage :

$ pip install SomePackage

Чтобы установить определенную версию пакета:

$ pip install SomePackage==1.0.4

Чтобы указать минимальную версию для установки для пакета:

$ pip install SomePackage>=1.0.4

Если команды показывают разрешенную ошибку в Linux / Unix, тогда используйте sudo с командами


Установить из файлов требований

$ pip install -r requirements.txt

Каждая строка файла требований указывает что-то, что нужно установить, и как аргументы для установки pip. Подробности о форматах файлов приведены здесь: Формат файла требований .

После установки пакета вы можете проверить его с помощью команды freeze :

$ pip freeze

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

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

$ pip uninstall SomePackage

Чтобы просмотреть все пакеты, установленные с помощью `pip`

Чтобы указать установленные пакеты:

$ pip list
# example output
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)

Чтобы просмотреть устаревшие пакеты и показать последнюю доступную версию:

$ pip list --outdated
# example output
docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)

Обновление пакетов

Бег

$ pip install --upgrade SomePackage 

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

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

$ pip install --upgrade pip

на Unix или

$ python -m pip install --upgrade pip

на машинах Windows.

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

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

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

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

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

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

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

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

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

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

pip freeze > requirements.txt

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

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

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

pip freeze --local > requirements.txt

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

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

Если у вас установлены оба Python 3 и Python 2, вы можете указать, какую версию Python вы хотите использовать для использования. Это полезно, если пакеты поддерживают только 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 вы пытаетесь обновить с помощью команды 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

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

Установка пакетов, еще не входящих в качестве колес

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

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

Самый простой ответ - перейти на превосходный сайт Кристофа Гольке и найти подходящую версию библиотек, которые вам нужны. Соответственно в названии пакета a -cp NN - должно соответствовать вашей версии python, то есть, если вы используете Windows-битовый python даже на win64, имя должно содержать -win32-, и если использовать 64-битный питон, он должен включать -win_amd64 - а затем версия python должна соответствовать, то есть для 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 ++ для Python 2.7 », который доступен на веб-сайте Microsoft или
  • Установите « Windows SDK для Windows 7 и .NET Framework 4 » (v7.1), который доступен на веб-сайте Microsoft или
  • Установите Visual Studio 2015 Community Edition (или любую более позднюю версию, когда они будут выпущены) , гарантируя, что вы выберете варианты установки поддержки C & C ++ больше не по умолчанию - мне сказали, что для загрузки и установки может потребоваться до 8 часов поэтому убедитесь , что эти параметры установлены с первой попытки.

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

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

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

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

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

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

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

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

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

  1. Загрузите сжатый снимок, большинство онлайн-систем контроля версий имеют возможность загрузить сжатый снимок кода. Это можно загрузить вручную, а затем установить с помощью пути pip install / to / download / file в pip, который для большинства форматов сжатия будет обрабатывать распаковку в область кеша и т. Д.
  2. Пусть pip обрабатывает загрузку и установку для вас: pip install URL / of / package / repository - вам также может понадобиться использовать --trusted-host , --client-cert и / или --proxy чтобы это работало правильно, особенно в корпоративной среде. например:
    > py -3.5-32 -m venv demo-pip
    > demo-pip\Scripts\activate.bat
    > python -m pip install -U pip
    Collecting pip
      Using cached pip-9.0.1-py2.py3-none-any.whl
    Installing collected packages: pip
      Found existing installation: pip 8.1.1
        Uninstalling pip-8.1.1:
          Successfully uninstalled pip-8.1.1
    Successfully installed pip-9.0.1
    > pip install git+https://github.com/sphinx-doc/sphinx/
    Collecting git+https://github.com/sphinx-doc/sphinx/
      Cloning https://github.com/sphinx-doc/sphinx/ to c:\users\steve-~1\appdata\local\temp\pip-04yn9hpp-build
    Collecting six>=1.5 (from Sphinx==1.7.dev20170506)
      Using cached six-1.10.0-py2.py3-none-any.whl
    Collecting Jinja2>=2.3 (from Sphinx==1.7.dev20170506)
      Using cached Jinja2-2.9.6-py2.py3-none-any.whl
    Collecting Pygments>=2.0 (from Sphinx==1.7.dev20170506)
      Using cached Pygments-2.2.0-py2.py3-none-any.whl
    Collecting docutils>=0.11 (from Sphinx==1.7.dev20170506)
      Using cached docutils-0.13.1-py3-none-any.whl
    Collecting snowballstemmer>=1.1 (from Sphinx==1.7.dev20170506)
      Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
    Collecting babel!=2.0,>=1.3 (from Sphinx==1.7.dev20170506)
      Using cached Babel-2.4.0-py2.py3-none-any.whl
    Collecting alabaster<0.8,>=0.7 (from Sphinx==1.7.dev20170506)
      Using cached alabaster-0.7.10-py2.py3-none-any.whl
    Collecting imagesize (from Sphinx==1.7.dev20170506)
      Using cached imagesize-0.7.1-py2.py3-none-any.whl
    Collecting requests>=2.0.0 (from Sphinx==1.7.dev20170506)
      Using cached requests-2.13.0-py2.py3-none-any.whl
    Collecting typing (from Sphinx==1.7.dev20170506)
      Using cached typing-3.6.1.tar.gz
    Requirement already satisfied: setuptools in f:\toolbuild\temp\demo-pip\lib\site-packages (from Sphinx==1.7.dev20170506)
    Collecting sphinxcontrib-websupport (from Sphinx==1.7.dev20170506)
      Downloading sphinxcontrib_websupport-1.0.0-py2.py3-none-any.whl
    Collecting colorama>=0.3.5 (from Sphinx==1.7.dev20170506)
      Using cached colorama-0.3.9-py2.py3-none-any.whl
    Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->Sphinx==1.7.dev20170506)
      Using cached MarkupSafe-1.0.tar.gz
    Collecting pytz>=0a (from babel!=2.0,>=1.3->Sphinx==1.7.dev20170506)
      Using cached pytz-2017.2-py2.py3-none-any.whl
    Collecting sqlalchemy>=0.9 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading SQLAlchemy-1.1.9.tar.gz (5.2MB)
        100% |################################| 5.2MB 220kB/s
    Collecting whoosh>=2.0 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468kB)
        100% |################################| 471kB 1.1MB/s
    Installing collected packages: six, MarkupSafe, Jinja2, Pygments, docutils, snowballstemmer, pytz, babel, alabaster, imagesize, requests, typing, sqlalchemy, whoosh, sphinxcontrib-websupport, colorama, Sphinx
      Running setup.py install for MarkupSafe ... done
      Running setup.py install for typing ... done
      Running setup.py install for sqlalchemy ... done
      Running setup.py install for Sphinx ... done
    Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Pygments-2.2.0 Sphinx-1.7.dev20170506 alabaster-0.7.10 babel-2.4.0 colorama-0.3.9 docutils-0.13.1 imagesize-0.7.1 pytz-2017.2 requests-2.13.0 six-1.10.0 snowballstemmer-1.2.1 sphinxcontrib-websupport-1.0.0 sqlalchemy-1.1.9 typing-3.6.1 whoosh-2.7.4

Обратите внимание на git+ префикс URL.

  1. Клон репозиторий с помощью git , mercurial или другой приемлемый инструмент, предпочтительно инструмент DVCS и использовать pip install путь / к / клонированного / репо - это будет как процесс , так любой файл requires.text и выполнять сборки и настройки шагов, вы можете вручную изменить каталог в ваш клонированный репозиторий и запустите pip install -r requires.txt а затем python setup.py install чтобы получить тот же эффект. Большие преимущества этого подхода заключаются в том, что, хотя начальная операция клонирования может занять больше времени, чем загрузка моментального снимка, которую вы можете обновить до последней версии, в случае git: git pull origin master и если текущая версия содержит ошибки, вы можете использовать pip uninstall package-name, затем используйте команды git checkout чтобы вернуться к истории хранилища до более ранних версий и повторить попытку.


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow