Suche…


Einführung

Manchmal müssen Sie den pip package manager in python verwenden, z. Wenn einige Importe ImportError und Sie die Ausnahme behandeln möchten. Wenn Sie unter Windows die Python_root/Scripts/pip.exe entpacken, wird die Datei __main__.py gespeichert, in die die main aus dem pip Paket importiert wird. Das bedeutet, dass das Pip-Paket immer dann verwendet wird, wenn Sie eine ausführbare Pip-Datei verwenden. Zur Verwendung von pip als ausführbare Datei siehe: pip: PyPI Package Manager

Syntax

  • pip. <Funktion | Attribut | Klasse> wobei Funktion eine der folgenden ist:
    • Autovervollständigung ()
      • Befehls- und Optionsvervollständigung für den Hauptoptionsparser (und die Optionen) und seine Unterbefehle (und Optionen). Aktivieren Sie diese Option, indem Sie eines der Completion-Shell-Skripts (bash, zsh oder fish) beziehen.
    • check_isolated (args)
      • param args {list}
      • gibt {boolean} zurück
    • create_main_parser ()
      • gibt ein {pip.baseparser.ConfigOptionParser-Objekt} zurück
    • main (args = keine)
      • param args {list}
      • Rückgabe {Ganzzahl} Wenn nicht fehlgeschlagen als 0 zurückgegeben wird
    • parseopts (args)
      • param args {list}
    • get_installed_distributions ()
      • gibt {list} zurück
    • get_similar_commands (name)
      • Befehlsname automatisch korrigiert
      • Parametername {Zeichenfolge}
      • gibt {boolean} zurück
    • get_summaries (order = True)
      • Ergibt sortierte (Befehlsname, Befehlszusammenfassung) Tupel.
    • get_prog ()
      • gibt {String} zurück
    • dist_is_editable (dist)
      • Ist die Distribution eine editierbare Installation?
      • param dist {object}
      • gibt {boolean} zurück
    • command_dict
      • Attribut {Wörterbuch}

Beispiel für die Verwendung von Befehlen

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])

pip.main(['freeze']) nur erforderliche Parameter obligatorisch sind, sind sowohl pip.main(['freeze']) als auch pip.main(['freeze', '', '']) akzeptabel.

Batch-Installation

Es ist möglich, viele Paketnamen in einem Aufruf zu übergeben. Wenn jedoch eine Installation / ein Upgrade fehlschlägt, wird der gesamte Installationsvorgang angehalten und mit dem Status '1' beendet.

import pip

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

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

Wenn Sie nicht anhalten möchten, wenn einige Installationen fehlschlagen, rufen Sie die Installation in einer Schleife auf.

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

Behandlung der ImportError-Ausnahme

Wenn Sie eine Python-Datei als Modul verwenden, müssen Sie nicht immer überprüfen, ob das Paket installiert ist, es ist jedoch für Skripte nützlich.

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

Installation erzwingen

Viele Pakete, zum Beispiel in Version 3.4, würden unter 3.6 problemlos laufen, aber wenn es keine Distributionen für eine bestimmte Plattform gibt, können sie nicht installiert werden, aber es gibt eine Problemumgehung. In WHL-Dateien (bekannt als Räder) entscheiden Namenskonventionen, ob Sie Pakete auf der angegebenen Plattform installieren können. Z.B. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl [Paketname] - [Version] - [Python-Interpreter] - [Python-Interpreter] - [Betriebssystem] .whl. Wenn der Name der Raddatei geändert wird und die Plattform nicht übereinstimmt, versucht pip, das Paket zu installieren, auch wenn die Plattform- oder Python-Version nicht übereinstimmt. Das Entfernen der Plattform oder des Interpreters aus dem Namen führt zu einem Fehler in der neuesten Version des Pip-Moduls. kjhfkjdf.whl is not a valid wheel filename. .

Alternativ kann die .whl-Datei mit einem Archivierer als 7-zip entpackt werden. - Normalerweise enthält es Meta-Ordner für die Verteilung und Ordner mit Quelldateien. Diese Quelldateien können einfach in das site-packges Verzeichnis entpackt werden, es sei denn, dieses Rad enthält ein Installationsskript. Wenn ja, muss es zuerst ausgeführt werden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow