Installer des packages depuis le shell Python


J’améliore tout le temps mon fichier de démarrage de Python.

Aujourd’hui je lui ai rajouté une petite fonction pour installer des packages avec pip depuis le shell. En effet, souvent il m’arrive de le lancer, puis d’importer un truc qui n’est pas là. Alors il faut sortir, installer, revenir.

Chiant.

Du coup :

import pip
def pip_install(*packages):
    """ Install packages diretly in the shell """
    for name in packages:
        cmd = ['install', name]
        if not hasattr(sys, 'real_prefix'):
            # Si pas dans un virtual env, install juste
            # dans le dossier utilisateur
            cmd.append('--user')
        pip.main(cmd)

Et dans le shell :

>>> pip_install('arrow', 'requests', 'minibelt')
>>> import arrow

6 thoughts on “Installer des packages depuis le shell Python

  • entwanne

    Sinon il y a aussi le module pip de disponible :

    import pip
    pip.main(['install', package_name])
    
  • Martin

    Le problème avec cette solution est qu’elle ne marchera pas si vous avez besoin de sudo pour installer le module (sudo pip install)

  • Sam Post author

    Cette solution fait très attention à installer les packages avec –user pour ne pas avoir à utiliser sudo. Utiliser sudo avec pip est généralement une mauvaise idée. Il n’y a que quelques exceptions, et pour celles-ci mieux vaut ne pas être dans le shell quand on se lance.

  • bigduke

    Oh joli ça !

    Moi je passe toujours “sur le côté” en ouvrant un autre onglet terminal, je pip install, puis retour au shell python et import.

    Mais la, c’est plus efficace :)

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.