Python Language
pip: Менеджер пакетов PyPI
Поиск…
Вступление
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 |
Установить пакеты
Чтобы установить последнюю версию пакета с именем 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 и других локаций, поскольку такой код в потоке очень маловероятен для создания колес, поэтому для любых нечистых пакетов потребуется наличие инструментов сборки, и они могут быть разбитым в любое время, поэтому пользователю настоятельно рекомендуется устанавливать такие пакеты только в виртуальной среде.
Для таких установок существуют три варианта:
- Загрузите сжатый снимок, большинство онлайн-систем контроля версий имеют возможность загрузить сжатый снимок кода. Это можно загрузить вручную, а затем установить с помощью пути
pip install
/ to / download / file в pip, который для большинства форматов сжатия будет обрабатывать распаковку в область кеша и т. Д. - Пусть 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.
- Клон репозиторий с помощью
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
чтобы вернуться к истории хранилища до более ранних версий и повторить попытку.