Szukaj…


Wprowadzenie

Czasami może być konieczne użycie menedżera pakietów pip w Pythonie, np. kiedy niektóre importy mogą wywołać błąd ImportError i chcesz obsłużyć wyjątek. Jeśli rozpakujesz w systemie Windows Python_root/Scripts/pip.exe środku jest przechowywany plik __main__.py , w którym importowana jest klasa main z pakietu pip . Oznacza to, że pakiet pip jest używany za każdym razem, gdy używasz pliku wykonywalnego pip. Aby użyć pip jako pliku wykonywalnego, patrz: pip: Menedżer pakietów PyPI

Składnia

  • pip. <funkcja | atrybut | klasa> gdzie funkcja jest jedną z:
    • autouzupełnienie()
      • Uzupełnianie poleceń i opcji dla głównego parsera opcji (i opcji) i jego podkomend ((i opcji)). Włącz, pobierając jeden ze skryptów powłoki ukończenia (bash, zsh lub fish).
    • check_isolated (args)
      • param args {list}
      • zwraca {boolean}
    • create_main_parser ()
      • zwraca {obiekt pip.baseparser.ConfigOptionParser}
    • main (argument = brak)
      • param args {list}
      • zwraca {liczba całkowita} Jeśli nie zakończy się niepowodzeniem, zwraca 0
    • parseopts (args)
      • param args {list}
    • get_installed_distribution ()
      • zwraca {lista}
    • get_similar_commands (nazwa)
      • Autokorekta nazwy polecenia.
      • nazwa parametru {ciąg}
      • zwraca {boolean}
    • get_summaries (order = True)
      • Daje posortowane krotki (nazwa polecenia, podsumowanie polecenia).
    • get_prog ()
      • zwraca {ciąg}
    • dist_is_editable (dist)
      • Czy dystrybucja jest instalacją do edycji?
      • param dist {object}
      • zwraca {boolean}
    • polecenie_dykt
      • atrybut {słownik}

Przykładowe użycie poleceń

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

Obowiązkowe są tylko potrzebne parametry, więc zarówno pip.main(['freeze']) i pip.main(['freeze', '', '']) są dopuszczalne.

Instalacja wsadowa

Możliwe jest przekazanie wielu nazw pakietów w jednym wywołaniu, ale jeśli jedna instalacja / aktualizacja zakończy się niepowodzeniem, cały proces instalacji zatrzymuje się i kończy na statusie „1”.

import pip

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

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

Jeśli nie chcesz zatrzymać się, gdy niektóre instalacje zakończą się niepowodzeniem, wywołaj instalację w pętli.

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

Obsługa wyjątku ImportError

Gdy używasz pliku python jako modułu, nie zawsze musisz sprawdzać, czy pakiet jest zainstalowany, ale nadal jest przydatny dla skryptów.

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

Wymuś instalację

Wiele pakietów, na przykład w wersji 3.4, działa dobrze w wersji 3.6, ale jeśli nie ma dystrybucji dla konkretnej platformy, nie można ich zainstalować, ale istnieje obejście. W plikach .whl (zwanych kołami) konwencja nazewnictwa decyduje, czy można zainstalować pakiet na określonej platformie. Na przykład. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl [nazwa_pakietu] - [wersja] - [interpreter pythona] - [interpreter pythona] - [system operacyjny] .whl. Jeśli nazwa pliku koła zostanie zmieniona, więc platforma się zgadza, pip próbuje zainstalować pakiet, nawet jeśli wersja platformy lub python nie jest zgodna. Usunięcie platformy lub interpretera z nazwy spowoduje błąd w najnowszej wersji modułu pip kjhfkjdf.whl is not a valid wheel filename. .

Alternatywnie plik .whl można rozpakować za pomocą archiwizatora jako 7-zip. - Zwykle zawiera folder meta dystrybucji i folder z plikami źródłowymi. Te pliki źródłowe można po prostu rozpakować do katalogu site-packges chyba że koło zawiera skrypt instalacyjny, jeśli tak, należy go najpierw uruchomić.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow