Sök…


Introduktion

Ibland kan du behöva använda pip-pakethanteraren i python, t.ex. när vissa import kan höja ImportError och du vill hantera undantaget. Om du packar upp på Windows Python_root/Scripts/pip.exe inuti lagras __main__.py fil, där main från pip paket importeras. Detta betyder att pip-paketet används när du använder pip-körbara. För användning av pip som körbar, se: pip: PyPI Package Manager

Syntax

  • pip. <funktion | attribut | klass> där funktionen är en av:
    • automatisk komplettering ()
      • Kommando- och alternativavslutning för huvudalternativsdelaren (och alternativen) och dess underkommandon (och alternativ). Aktivera genom att anskaffa ett av kompletteringsskalskript (bash, zsh eller fisk).
    • check_isolated (args)
      • param args {list}
      • returnerar {boolean}
    • create_main_parser ()
      • returnerar {pip.baseparser.ConfigOptionParser-objekt}
    • main (args = Inget)
      • param args {list}
      • returnerar {heltal} Om inte misslyckades än returnerar 0
    • parseopts (args)
      • param args {list}
    • get_installed_distributions ()
      • returnerar {list}
    • get_similar_commands (namn)
      • Kommandonamn auto-korrekt.
      • paramnamn {string}
      • returnerar {boolean}
    • get_summaries (beställd = sant)
      • Utbyten sorterade (kommandonamn, kommandosammanfattning) tuples.
    • get_prog ()
      • returnerar {string}
    • dist_is_editable (dist)
      • Är distribution en redigerbar installation?
      • param dist {object}
      • returnerar {boolean}
    • commands_dict
      • attribut {ordbok}

Exempel på användning av kommandon

import pip

command = 'install'
parameter = 'selenium'
second_param = 'numpy' # You can give as many package names as needed
switch = '--upgrade'

pip.main([command, parameter, second_param, switch])

Endast nödvändiga parametrar är obligatoriska, så både pip.main(['freeze']) och pip.main(['freeze', '', '']) är acceptabla.

Batchinstallation

Det är möjligt att skicka många paketnamn i ett samtal, men om en installation / uppgradering misslyckas stoppar hela installationsprocessen och slutar med status '1'.

import pip

installed = pip.get_installed_distributions()
list = []
for i in installed:
    list.append(i.key)

pip.main(['install']+list+['--upgrade'])

Om du inte vill stoppa när vissa installationer misslyckas, ring installationen i loop.

for i in installed:
        pip.main(['install']+i.key+['--upgrade'])

Hantera ImportError-undantag

När du använder python-fil som modul behöver du inte alltid kontrollera om paketet är installerat men det är fortfarande användbart för skript.

if __name__ == '__main__':
    try:
        import requests
    except ImportError:
        print("To use this module you need 'requests' module")
        t = input('Install requests? y/n: ')
        if t == 'y':
            import pip
            pip.main(['install', 'requests'])
            import requests
            import os
            import sys
            pass
        else:
            import os
            import sys
            print('Some functionality can be unavailable.')
else:
    import requests
    import os
    import sys

Tvinga installationen

Många paket, till exempel i version 3.4, skulle köras på 3.6 helt fint, men om det inte finns några distributioner för en specifik plattform kan de inte installeras, men det finns en lösning. I .whl-filer (känd som hjul) bestämmer namnkonvention om du kan installera paketet på en specifik plattform. T.ex. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl [paketnamn] - [version] - [python-tolk] - [python-tolk] - [Operativsystem] .whl. Om namnet på hjulfilen ändras, så plattformen matchar, försöker pip installera paketet även om plattform- eller pythonversionen inte matchar. Att ta bort plattform eller tolk från namn kommer att uppstå ett fel i den senaste versoin av kjhfkjdf.whl is not a valid wheel filename. .

Alternativt kan .whl-filen packas upp med hjälp av en arkivering som 7-zip. - Den innehåller vanligtvis distributionsmetamapp och mapp med källfiler. Dessa källfiler kan helt enkelt packas upp i site-packges inte detta hjul innehåller installationsskript, i så fall måste det köras först.



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