Recherche…


Introduction

Parfois, vous devrez peut-être utiliser le gestionnaire de paquets pip dans python, par exemple. lorsque certaines importations peuvent générer ImportError et que vous souhaitez gérer l'exception. Si vous décompressez sur Windows, Python_root/Scripts/pip.exe intérieur __main__.py fichier __main__.py , où main classe main du paquetage pip est importée. Cela signifie que le paquetage pip est utilisé chaque fois que vous utilisez l'exécutable pip. Pour utiliser pip comme exécutable, voir: pip: PyPI Package Manager

Syntaxe

  • pip. <function | attribute | class> où la fonction est l'une des suivantes:
    • autocomplete ()
      • Achèvement de la commande et de l'option pour l'analyseur principal (et les options) et ses sous-commandes (et options). Activer en recherchant l'un des scripts de complétion (bash, zsh ou fish).
    • check_isolated (args)
      • param args {list}
      • retourne {boolean}
    • create_main_parser ()
      • retourne l'objet {pip.baseparser.ConfigOptionParser}
    • main (args = None)
      • param args {list}
      • renvoie {entier} S'il n'a pas échoué, renvoie 0
    • parseopts (args)
      • param args {list}
    • get_installed_distributions ()
      • retourne {liste}
    • get_similar_commands (name)
      • Nom de la commande corrigé automatiquement
      • param name {string}
      • retourne {boolean}
    • get_summaries (commandé = True)
      • Donne les tuples triés (nom de la commande, résumé de la commande).
    • get_prog ()
      • renvoie {chaîne}
    • dist_is_editable (dist)
      • La distribution est-elle une installation modifiable?
      • param dist {object}
      • retourne {boolean}
    • commands_dict
      • attribut {dictionary}

Exemple d'utilisation de commandes

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

Seuls les paramètres nécessaires sont obligatoires, donc pip.main(['freeze']) et pip.main(['freeze', '', '']) sont acceptables.

Installation par lots

Il est possible de transmettre de nombreux noms de paquet en un seul appel, mais si une installation / mise à niveau échoue, le processus d'installation complet s'arrête et se termine avec le statut '1'.

import pip

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

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

Si vous ne voulez pas vous arrêter lorsque certaines installations échouent, appelez l'installation en boucle.

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

Gestion des exceptions ImportError

Lorsque vous utilisez le fichier python en tant que module, il n'est pas toujours nécessaire de vérifier si le package est installé, mais il est toujours utile pour les scripts.

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

Installer force

Par exemple, de nombreux paquets sur la version 3.4 fonctionneraient sur la version 3.6, mais s'il n'y a pas de distributions pour une plate-forme spécifique, ils ne peuvent pas être installés, mais il existe une solution de contournement. Dans les fichiers .whl (appelés roues), la convention de nommage détermine si vous pouvez installer le package sur la plate-forme spécifiée. Par exemple. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl [nom_package] - [version] - [interpréteur python] - [python-interpreter] - [système d'exploitation] .whl. Si le nom du fichier de la roue est modifié, de sorte que la plate-forme corresponde, pip essaie d'installer le paquet même si la version de la plateforme ou de python ne correspond pas. La suppression de la plate-forme ou de l'interpréteur du nom entraînera une erreur dans la dernière version du module pip kjhfkjdf.whl is not a valid wheel filename. .

Alternativement, le fichier .whl peut être décompressé en utilisant un archiveur comme 7-zip. - Il contient généralement un dossier de méta de distribution et un dossier avec les fichiers source. Ces fichiers source peuvent être simplement décompressés dans le répertoire site-packges , à moins que cette roue ne contienne un script d'installation, si c'est le cas, elle doit être exécutée en premier.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow