pip: менеджер пакетов PyPI

Введение

Примеры

  • 5

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

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

     $ pip install SomePackage
    
     

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

     $ pip install SomePackage==1.0.4
    
     

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

     $ pip install SomePackage>=1.0.4
    
     

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


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

     $ pip install -r requirements.txt
    
     

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

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

     $ pip freeze
    
    
     
  • 2

    Удалить пакеты

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

     $ pip uninstall SomePackage 
  • 5

    Для просмотра всех пакетов, установленных с помощью `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) 
  • 4

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

    Бег

     $ pip install --upgrade SomePackage 
    
     

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

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

     $ pip install --upgrade pip
    
     

    в Unix или

     $ python -m pip install --upgrade pip
    
     

    на машинах Windows.

  • 2

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

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

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

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

  • 2

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

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

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

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

  • 2

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

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

     pip freeze > requirements.txt
    
     

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

  • 1

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

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

     pip freeze --local > requirements.txt
    
     

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

  • 1

    Использование определенной версии 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 виртуальных окружающих средах , которые позволяют выделить как версию питона и пакеты , которые присутствуют.

  • 0

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

    Многие чистые пакеты 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 путь / к / загруженному / примечанию файла, для большинства форматов сжатия пипа будет обрабатывать распаковки в области кэша и т.д.
    2. Пусть пип обрабатывать загрузку и установить для вас: pip install URL / в / пакет / хранилище - вам может понадобиться использовать --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.

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

Синтаксис

Параметры

Примечания