Python Language
pip: PyPI Package Manager
Sök…
Introduktion
pip är den mest använda pakethanteraren för Python Package Index, installerat som standard med de senaste versionerna av Python.
Syntax
- pip <kommando> [alternativ] där <kommando> är ett av:
- Installera
- Installera paket
- avinstallera
- Avinstallera paket
- frysa
- Output installerade paket i kravformat
- lista
- Lista installerade paket
- visa
- Visa information om installerade paket
- Sök
- Sök PyPI efter paket
- hjul
- Bygg hjul från dina krav
- blixtlås
- Zip individuella paket (avskrivna)
- packa upp
- Packa upp enskilda paket (avskrivna)
- bunt
- Skapa pybundlar (avskrivna)
- hjälp
- Visa hjälp för kommandon
- Installera
Anmärkningar
Ibland kommer pip
att utföra en manuell sammanställning av inbyggd kod. På Linux väljer python automatiskt en tillgänglig C-kompilator på ditt system. Se tabellen nedan för önskad version av Visual Studio / Visual C ++ i Windows (nyare versioner fungerar inte.)
Python version | Visual Studio-version | Visual C ++ version |
---|---|---|
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 |
Installera paket
Så här installerar du den senaste versionen av ett paket som heter SomePackage
:
$ pip install SomePackage
Så här installerar du en specifik version av ett paket:
$ pip install SomePackage==1.0.4
Så här anger du en minimumversion som ska installeras för ett paket:
$ pip install SomePackage>=1.0.4
Om kommandon visar fel nekad tillåtelse på Linux / Unix, använd sedan sudo
med kommandona
Installera från kravfiler
$ pip install -r requirements.txt
Varje rad i kravfilen indikerar något som ska installeras, och som argument för pipinstallation, finns information om filformat här: Krav Filformat .
När du har installerat paketet kan du kontrollera det med freeze
:
$ pip freeze
Avinstallera paket
Så här avinstallerar du ett paket:
$ pip uninstall SomePackage
För att lista alla paket installerade med `pip`
Så här listar du installerade paket:
$ pip list
# example output
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)
Så här listar du föråldrade paket och visar den senaste tillgängliga versionen:
$ pip list --outdated
# example output
docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)
Uppgradera paket
Löpning
$ pip install --upgrade SomePackage
kommer att uppgradera paketet SomePackage
och alla dess beroenden. Dessutom tar pip automatiskt bort den äldre versionen av paketet innan uppgradering.
För att uppgradera pip själv
$ pip install --upgrade pip
på Unix eller
$ python -m pip install --upgrade pip
på Windows-maskiner.
Uppdatering av alla föråldrade paket på Linux
pip
innehåller inte någon flagga för att låta en användare uppdatera alla föråldrade paket i ett skott. Detta kan emellertid åstadkommas genom att leda kommandon tillsammans i en Linux-miljö:
pip list --outdated --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
Detta kommando tar alla paket i den lokala virtualenv och kontrollerar om de är föråldrade. Från den listan får det paketnamnet och sedan rör det till ett pip install -U
kommando. I slutet av denna process bör alla lokala paket uppdateras.
Uppdatering av alla föråldrade paket på Windows
pip
innehåller inte någon flagga för att låta en användare uppdatera alla föråldrade paket i ett skott. Detta kan emellertid åstadkommas genom att leda kommandon tillsammans i en Windows-miljö:
for /F "delims= " %i in ('pip list --outdated --local') do pip install -U %i
Detta kommando tar alla paket i den lokala virtualenv och kontrollerar om de är föråldrade. Från den listan får det paketnamnet och sedan rör det till ett pip install -U
kommando. I slutet av denna process bör alla lokala paket uppdateras.
Skapa en krav.txt-fil för alla paket i systemet
pip
hjälper till att skapa requirements.txt
filer genom att tillhandahålla freeze
.
pip freeze > requirements.txt
Detta kommer att spara en lista över alla paket och deras version installerad i systemet till en fil med namnen requirements.txt
i den aktuella mappen.
Skapa en krav.txt-fil med paket endast i den aktuella virtualenv
pip
hjälper till att skapa requirements.txt
filer genom att tillhandahålla freeze
.
pip freeze --local > requirements.txt
Parametern - --local
bara en lista över paket och versioner som installeras lokalt på en virtualenv. Globala paket kommer inte att listas.
Med hjälp av en viss Python-version med pip
Om du har både Python 3 och Python 2 installerat kan du ange vilken version av Python du vill att pip ska använda. Detta är användbart när paket endast stöder Python 2 eller 3 eller när du vill testa med båda.
Om du vill installera paket för Python 2, kör antingen:
pip install [package]
eller:
pip2 install [package]
Om du vill installera paket för Python 3 gör du:
pip3 install [package]
Du kan också åberopa installation av ett paket till en specifik pythoninstallation med:
\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
På OS-X / Linux / Unix-plattformar är det viktigt att vara medveten om skillnaden mellan systemversionen av python, (vilken uppgradering gör ditt system inoperabelt), och användarversionen av python. Du kan, beroende på vilken du försöker uppgradera, behovet av att prefix dessa kommandon med sudo
och mata in ett lösenord.
På Windows kan vissa pythoninstallationer, särskilt de som ingår i ett annat paket, hamna installerade i systemkataloger - de som du måste uppgradera från ett kommandofönster som körs i administratörsläge - om du ser att det ser ut som du behöver gör det är det en mycket bra idé att kontrollera vilken pythoninstallation du försöker uppgradera med ett kommando som python -c"import sys;print(sys.path);"
eller py -3.5 -c"import sys;print(sys.path);"
du kan också kontrollera vilken pip du försöker köra med pip --version
I Windows, om du har både Python 2 och Python 3 installerad och på din väg och din Python 3 är större än 3,4 kommer du antagligen också Python bärraketen py
på ditt system väg. Du kan sedan göra trick som:
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
Om du kör och underhåller flera versioner av python rekommenderar jag starkt att du läser om Python virtualenv
eller venv
virtuella miljöer som gör att du kan isolera både versionen av python och vilka paket som finns.
Installera paket som ännu inte är på pip som hjul
Många, rena Python-paket är ännu inte tillgängliga på Python Package Index som hjul men installerar fortfarande bra. Vissa paket i Windows ger emellertid det fruktade vcvarsall.bat inte felet.
Problemet är att paketet som du försöker installera innehåller en C eller C ++ förlängning och för närvarande inte finns som ett förbyggt hjul från pythonpaketets index, pypi och på fönster har du inte den verktygskedja som behövs för att bygga sådana artiklar.
Det enklaste svaret är att gå till Christoph Gohlkes utmärkta webbplats och hitta rätt version av de bibliotek som du behöver. Genom att ange i paketnamnet en -cp NN - måste matcha din version av python, dvs. om du använder Windows 32 bitars python även på win64 måste namnet innehålla -win32- och om du använder 64-bitars python måste det inkludera -win_amd64 - och sedan måste Python-versionen matcha, dvs för Python 34 måste filnamnet innehålla -cp 34- , etc. detta är i princip den magi som pip gör för dig på pypi-webbplatsen.
Alternativt måste du få rätt Windows-utvecklingspaket för den version av python som du använder, rubrikerna för alla bibliotek som paketet du försöker bygga gränssnitt till, eventuellt pythonrubrikerna för versionen av python, etc.
Python 2.7 använde Visual Studio 2008, Python 3.3 och 3.4 använde Visual Studio 2010 och Python 3.5+ använder Visual Studio 2015.
- Installera " Visual C ++ Compiler Package for Python 2.7 ", som är tillgängligt från Microsofts webbplats eller
- Installera " Windows SDK för Windows 7 och .NET Framework 4 " (v7.1), som är tillgängligt från Microsofts webbplats eller
- Installera Visual Studio 2015 Community Edition , (eller någon senare version, när dessa släpps) , och se till att du väljer alternativen för att installera C & C ++ support inte längre som standard - Jag får höra att det kan ta upp till 8 timmar att ladda ner och installera så se till att dessa alternativ är inställda vid första försöket.
Då kan du behöva hitta rubrikfilerna vid matchande revision för alla bibliotek som ditt önskade paket länkar till och ladda ner dem till lämpliga platser.
Slutligen kan du låta pip göra din byggnad - naturligtvis om paketet har beroenden som du inte har ännu kan du också behöva hitta rubrikfilerna för dem också.
Alternativ: Det är också värt att titta ut, både på pypi eller Christophe's webbplats , för alla lite tidigare versioner av paketet som du letar efter som är antingen ren python eller förbyggd för din plattform och pythonversion och eventuellt använda dessa, om hittades tills ditt paket blir tillgängligt. På samma sätt om du använder den allra senaste versionen av python kan det hända att det tar pakethållarna lite tid att komma ikapp, så för projekt som verkligen behöver ett specifikt paket kan du behöva använda en lite äldre python för tillfället. Du kan också kontrollera paketets källsajt för att se om det finns en gaffelversion som är tillgänglig förbyggd eller som ren python och söka efter alternativa paket som ger den funktionalitet som du behöver men är tillgänglig - ett exempel som tänker på är att Kudde , aktivt underhållen , minskad ersättning för PIL för närvarande inte uppdaterad på 6 år och inte tillgänglig för python 3 .
Efterordet skulle jag uppmuntra alla som har det här problemet att gå till buggspåraren för paketet och lägga till, eller höja om det inte finns någon redan, en biljett som artigt begär att paketansvariga ska tillhandahålla ett hjul på pypi för din specifika kombination av plattform och python, om detta görs så kommer saker och ting att bli bättre med tiden, vissa paketunderhållare inser inte att de har missat en given kombination som folk kanske använder.
Obs om installation av förhandsmeddelanden
Pip följer reglerna för Semantisk versionering och föredrar som standard släppta paket framför pre-releases. Så om en viss förpackning har släppts som V0.98
och det finns också en release-kandidat V1.0-rc1
standardbeteende pip install
är att installera V0.98
- om du vill installera Release Candidate, bör du för att testa i en virtuell miljö först , kan du aktivera det med --pip install --pre
paketnamn eller --pip install --pre --upgrade
paketnamn . I många fall kanske inte pre-release eller release-kandidater har hjul byggda för alla plattform- och versionskombinationer så det är mer troligt att du stöter på problemen ovan.
Obs om installation av utvecklingsversioner
Du kan också använda pip för att installera utvecklingsversioner av paket från github och andra platser, eftersom en sådan kod är i flöde är det mycket osannolikt att hjul är byggda för det, så alla orena paket kräver närvaron av byggverktygen, och de kan bryts när som helst så att användaren uppmanas starkt att bara installera sådana paket i en virtuell miljö.
Det finns tre alternativ för sådana installationer:
- Ladda ner komprimerad snapshot, de flesta online-versionskontrollsystem har möjlighet att ladda ner en komprimerad snapshot av koden. Detta kan laddas ner manuellt och sedan installeras med
pip install
/ till / nedladdat / fil Observera att pip för de flesta komprimeringsformat hanterar uppackning till ett cacheområde etc. - Låt pip hantera nedladdningen och installera åt dig med:
pip install
URL / av / paket / förvaring - du kanske också måste använda ---trusted-host
,--client-cert
och / eller ---proxy
flaggor för att detta ska fungera korrekt, särskilt i en företagsmiljö. t.ex:
> 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
Notera git+
prefixet till URL: n.
- Klona förvaret med
git
,mercurial
eller annat acceptabelt verktyg, helst ett DVCS-verktyg, och användpip install
/ till / klonat / repo - detta kommer både att bearbeta alla required.text-filer och utföra bygg- och installationsstegen, du kan ändra manuellt katalog till ditt klonade förvar och körapip install -r requires.txt
och sedanpython setup.py install
att få samma effekt. De stora fördelarna med detta tillvägagångssätt är att även om den ursprungliga klonoperationen kan ta längre tid än nedladdningen av stillbilden kan du uppdatera till den senaste, i fallet med git:git pull origin master
och om den aktuella versionen innehåller fel kan du användapip uninstall
paketnamn använder sedangit checkout
kommandon för att flytta tillbaka genom lagringshistoriken till tidigare versioner och försöka igen.