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

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

Källa: wiki.python.org

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.

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:

  1. 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.
  2. 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.

  1. Klona förvaret med git , mercurial eller annat acceptabelt verktyg, helst ett DVCS-verktyg, och använd pip 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öra pip install -r requires.txt och sedan python 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ända pip uninstall paketnamn använder sedan git checkout kommandon för att flytta tillbaka genom lagringshistoriken till tidigare versioner och försöka igen.


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow