Zoeken…


Invoering

pip is de meest gebruikte pakketbeheerder voor de Python-pakketindex, standaard geïnstalleerd bij recente versies van Python.

Syntaxis

  • pip <command> [opties] waarbij <command> een van is:
    • installeren
      • Pakketten installeren
    • uninstall
      • Pakketten verwijderen
    • bevriezen
      • Geïnstalleerde pakketten uitvoeren in het vereistenformaat
    • lijst
      • Lijst geïnstalleerde pakketten
    • tonen
      • Informatie weergeven over geïnstalleerde pakketten
    • zoeken
      • Zoek in PyPI naar pakketten
    • wiel
      • Bouw wielen volgens uw vereisten
    • ritssluiting
      • Zip individuele pakketten (verouderd)
    • uitpakken
      • Pak afzonderlijke pakketten uit (verouderd)
    • bundel
      • Maak pybundles (verouderd)
    • helpen
      • Help weergeven voor opdrachten

Opmerkingen

Soms zal pip een handmatige compilatie van native code uitvoeren. Op Linux kiest python automatisch een beschikbare C-compiler op uw systeem. Raadpleeg de onderstaande tabel voor de vereiste Visual Studio / Visual C ++ -versie op Windows (nieuwere versies werken niet.).

Python-versie Visual Studio-versie Visuele C ++ -versie
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

Bron: wiki.python.org

Pakketten installeren

Om de nieuwste versie van een pakket met de naam SomePackage te installeren:

$ pip install SomePackage

Om een specifieke versie van een pakket te installeren:

$ pip install SomePackage==1.0.4

Een minimumversie opgeven om te installeren voor een pakket:

$ pip install SomePackage>=1.0.4

Als commando's een fout met geweigerde toestemming op Linux / Unix toont, gebruik dan sudo met de commando's


Installeren vanuit vereistenbestanden

$ pip install -r requirements.txt

Elke regel van het vereistenbestand geeft aan dat er iets moet worden geïnstalleerd, en net als argumenten voor pip-installatie, vindt u hier details over de bestandsindeling: Vereisten Bestandsindeling .

Na installatie van het pakket kunt u het controleren met freeze opdracht freeze :

$ pip freeze

Pakketten verwijderen

Een pakket verwijderen:

$ pip uninstall SomePackage

Alle pakketten weergeven die zijn geïnstalleerd met behulp van `pip`

Geïnstalleerde pakketten weergeven:

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

Om verouderde pakketten weer te geven en de nieuwste beschikbare versie weer te geven:

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

Upgrade pakketten

Rennen

$ pip install --upgrade SomePackage 

zal het pakket SomePackage en al zijn afhankelijkheden upgraden. Ook verwijdert pip automatisch een oudere versie van het pakket vóór de upgrade.

Om pip zelf te upgraden, doe je

$ pip install --upgrade pip

op Unix of

$ python -m pip install --upgrade pip

op Windows-machines.

Bijwerken van alle verouderde pakketten op Linux

pip bevat momenteel geen vlag waarmee een gebruiker alle verouderde pakketten in één keer kan bijwerken. Dit kan echter worden bereikt door commando's samen te voegen in een Linux-omgeving:

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

Deze opdracht neemt alle pakketten in de lokale virtualenv en controleert of ze verouderd zijn. Uit die lijst haalt het de pakketnaam op en stuurt dit vervolgens naar een pip install -U commando. Aan het einde van dit proces moeten alle lokale pakketten worden bijgewerkt.

Bijwerken van alle verouderde pakketten op Windows

pip bevat momenteel geen vlag waarmee een gebruiker alle verouderde pakketten in één keer kan bijwerken. Dit kan echter worden bereikt door commando's samen te voegen in een Windows-omgeving:

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

Deze opdracht neemt alle pakketten in de lokale virtualenv en controleert of ze verouderd zijn. Uit die lijst haalt het de pakketnaam op en stuurt dit vervolgens naar een pip install -U commando. Aan het einde van dit proces moeten alle lokale pakketten worden bijgewerkt.

Maak een requirements.txt-bestand van alle pakketten op het systeem

pip helpt bij het maken van requirements.txt bestanden door de optie freeze bieden.

pip freeze > requirements.txt

Hiermee wordt een lijst van alle pakketten en hun versie op het systeem opgeslagen in een bestand met de naam requirements.txt in de huidige map.

Maak een requirements.txt-bestand van pakketten alleen in de huidige virtualenv

pip helpt bij het maken van requirements.txt bestanden door de optie freeze bieden.

pip freeze --local > requirements.txt

De parameter --local geeft alleen een lijst met pakketten en versies die lokaal op een virtualenv zijn geïnstalleerd. Wereldwijde pakketten worden niet vermeld.

Een bepaalde Python-versie met pip gebruiken

Als zowel Python 3 als Python 2 zijn geïnstalleerd, kunt u opgeven welke versie van Python u wilt gebruiken. Dit is handig wanneer pakketten alleen Python 2 of 3 ondersteunen of wanneer u met beide wilt testen.

Als je pakketten voor Python 2 wilt installeren, voer je een van beide uit:

pip install [package]

of:

pip2 install [package]

Als u pakketten voor Python 3 wilt installeren, doet u het volgende:

pip3 install [package]

U kunt ook de installatie van een pakket voor een specifieke python-installatie oproepen met:

\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

Op OS-X / Linux / Unix-platforms is het belangrijk om rekening te houden met het onderscheid tussen de systeemversie van python (waardoor upgraden uw systeem onbruikbaar maakt) en de gebruikersversie van python. U kunt, afhankelijk van welke u probeert te upgraden, noodzaak om deze opdrachten voorvoegsel sudo en het invoeren van een wachtwoord.

Op dezelfde manier kunnen sommige python-installaties in Windows, met name die welke deel uitmaken van een ander pakket, worden geïnstalleerd in systeemmappen - die u moet upgraden vanuit een opdrachtvenster dat wordt uitgevoerd in de beheerdersmodus - als u vindt dat het lijkt alsof u doe dit het is een heel goed idee om te controleren welke python-installatie je probeert te upgraden met een commando zoals python -c"import sys;print(sys.path);" of py -3.5 -c"import sys;print(sys.path);" je kunt ook controleren welke pip je probeert uit te voeren met pip --version

Als u in Windows zowel python 2 als python 3 hebt geïnstalleerd, en op uw pad en uw python 3 groter is dan 3.4, hebt u waarschijnlijk ook de python launcher py op uw systeempad. Je kunt dan trucs doen zoals:

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

Als u meerdere versies van python gebruikt en onderhoudt, raad ik u ten zeerste aan meer te lezen over de virtuele omgevingen python virtualenv of venv waarmee u zowel de versie van python kunt isoleren als welke pakketten aanwezig zijn.

Pakketten nog niet op pip als wielen installeren

Veel, pure python, pakketten zijn nog niet beschikbaar op de Python Pakketindex als wielen, maar kunnen nog steeds prima worden geïnstalleerd. Sommige pakketten op Windows geven echter de gevreesde vcvarsall.bat niet gevonden fout.

Het probleem is dat het pakket dat u probeert te installeren een C- of C ++ -extensie bevat en momenteel niet beschikbaar is als een vooraf gebouwd wiel uit de python-pakketindex, pypi , en op Windows hebt u niet de gereedschapsketen die nodig is om te bouwen dergelijke items.

Het eenvoudigste antwoord is om naar de uitstekende site van Christoph Gohlke te gaan en de juiste versie van de bibliotheken te vinden die u nodig hebt. Bij de pakketnaam moet a -cp NN - in overeenstemming zijn met uw versie van python, dwz als u Windows 32-bits python gebruikt, zelfs op win64, moet de naam -win32- bevatten en als u de 64-bits python gebruikt, moet deze -win_amd64 bevatten - en dan is de python versie moet overeenkomen, dat wil zeggen voor Python 34 de bestandsnaam moet -cp onder 34-, enz. dit is in feite de magie die pip voor je doet op de pypi terrein.

Als alternatief moet u de juiste Windows-ontwikkelingskit aanschaffen voor de versie van python die u gebruikt, de headers voor elke bibliotheek waarmee het pakket dat u probeert te bouwen interfaces naar, mogelijk de python headers voor de versie van python, enz.

Python 2.7 gebruikte Visual Studio 2008, Python 3.3 en 3.4 gebruikte Visual Studio 2010 en Python 3.5+ gebruikt Visual Studio 2015.

Dan moet u mogelijk de koptekstbestanden zoeken bij de bijbehorende revisie voor alle bibliotheken waarnaar uw gewenste pakket linkt en deze naar een geschikte locatie downloaden.

Eindelijk kun je pip je build laten doen - natuurlijk als het pakket afhankelijkheden heeft die je nog niet hebt, moet je misschien ook de header-bestanden voor hen vinden.

Alternatieven: Het is ook de moeite waard om te kijken, zowel op pypi als op de site van Christophe , want elke iets eerdere versie van het pakket die u zoekt, is pure python of vooraf gebouwd voor uw platform en python-versie en mogelijk met behulp van die, als gevonden, totdat uw pakket beschikbaar komt. Ook als u gebruik maakt van de meest recente versie van python kunt u vinden dat het duurt het pakket onderhouders een beetje tijd in te halen, zodat voor projecten die echt een specifiek pakket dat u kan hebben om een iets oudere python gebruiken voor het moment nodig hebben. Je kunt ook de bronsite van de pakketten bekijken om te zien of er een gevorkte versie is die vooraf gebouwd of als pure python beschikbaar is en zoekt naar alternatieve pakketten die de functionaliteit bieden die je nodig hebt maar beschikbaar zijn - een voorbeeld dat in je opkomt is de Kussen , actief onderhouden , vervanging voor PIL is momenteel niet bijgewerkt in 6 jaar en niet beschikbaar voor python 3 .

Nawoord , ik zou iedereen die dit probleem heeft aanmoedigen om naar de bug-tracker voor het pakket te gaan en een kaartje toe te voegen of te verhogen als er nog geen is, waarin de pakketbeheerders beleefd wordt gevraagd om een wiel op pypi voor uw specifieke combinatie van platform en python, als dit wordt gedaan, worden dingen normaal gesproken na verloop van tijd beter, sommige pakketbeheerders realiseren zich niet dat ze een bepaalde combinatie hebben gemist die mensen mogelijk gebruiken.

Opmerking over het installeren van pre-releases

Pip volgt de regels van Semantic Versioning en geeft standaard de voorkeur aan vrijgegeven pakketten boven pre-releases. Dus als een bepaald pakket is vrijgegeven als V0.98 en er is ook een V1.0-rc1 het standaardgedrag van pip install het installeren van V0.98 - als u de V0.98 wilt installeren, wordt u geadviseerd om eerst in een virtuele omgeving te testen , kunt u dit doen met --pip install --pre pakketnaam of --pip install --pre --upgrade pakketnaam . In veel gevallen hebben pre-releases of releasekandidaten mogelijk geen wielen gebouwd voor alle platform- en versiecombinaties, zodat u de bovenstaande problemen waarschijnlijk tegenkomt.

Opmerking over het installeren van ontwikkelingsversies

Je kunt pip ook gebruiken om ontwikkelingsversies van pakketten van github en andere locaties te installeren, omdat dergelijke code in beweging is, is het zeer onwaarschijnlijk dat er wielen voor worden gebouwd, dus voor onzuivere pakketten is de aanwezigheid van de build-tools vereist, en ze kunnen op elk moment worden verbroken, zodat de gebruiker sterk wordt aangemoedigd dergelijke pakketten alleen in een virtuele omgeving te installeren.

Er zijn drie opties voor dergelijke installaties:

  1. Download gecomprimeerde momentopname, de meeste online versiebeheersystemen hebben de optie om een gecomprimeerde momentopname van de code te downloaden. Dit kan handmatig worden gedownload en vervolgens worden geïnstalleerd met het pip install / naar / gedownload / bestand. Let op dat pip voor de meeste compressieformaten het uitpakken naar een cachegebied, etc. afhandelt.
  2. Laat pip het downloaden en installeren voor u --trusted-host met: pip install URL / of / package / repository - mogelijk moet u ook de --trusted-host , --client-cert en / of --proxy om dit te laten werken correct, vooral in een zakelijke omgeving. bijvoorbeeld:
    > 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

Let op het voorvoegsel git+ voor de URL.

  1. Kloon de repository met behulp van git , mercurial of een ander acceptabel hulpmiddel, bij voorkeur een DVCS-hulpmiddel, en gebruik het pip install / naar / gekloond / repo - dit zal beide elk vereist Imperium- bestand verwerken en de bouw- en instellingsstappen uitvoeren, je kunt handmatig wijzigen map naar uw gekloonde repository en voer pip install -r requires.txt python setup.py install en vervolgens python setup.py install uit om hetzelfde effect te krijgen. Het grote voordeel van deze aanpak is dat, hoewel de initiële kloonbewerking langer kan duren dan de snapshot-download, je kunt updaten naar de nieuwste versie, in het geval van git: git pull origin master en als de huidige versie fouten bevat, kun je pip uninstall pakketnaam gebruik vervolgens git checkout opdrachten om terug te gaan door de repositorygeschiedenis naar eerdere versie (s) en probeer het opnieuw.


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow