115 votes

Comment puis-je vérifier si un module est installé dans Python, et l'installer si nécessaire ?

En terminal, après avoir démarré Python, comment vais-je savoir quels sont les modules présents dans Python ? Supposons que je doive apprendre les modules NumPy et SciPy.

  • Comment vais-je l'installer s'il n'est pas installé ?
  • Comment puis-je savoir s'il est déjà installé ?

95voto

sourav c. Points 40637

Comment savoir si un module Python est installé ou non dans le système : Vous pouvez faire un test très simple dans le terminal,

$ python -c "import math"
$ echo $?
0                                # math module exists in system

$ python -c "import numpy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy
$ echo $?
1                                # numpy module does not exist in system

Comment vais-je l'installer s'il n'est pas installé ?

Vous pouvez installer un module spécifique en téléchargeant les paquets respectifs à partir du référentiel, par exemple vous pouvez installer scipy comme,

sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3

Alternativement Vous pouvez également installer un module Python en utilisant python-pip comme suggéré par Zack Titan dans le commentaire ci-dessous Pour installer numpy vous pouvez utiliser

pip install numpy

Attention : Il est fortement recommandé d'installer les modules Python en utilisant uniquement le dépôt officiel d'Ubuntu et de ne pas utiliser le programme pip comme superutilisateur (c'est-à-dire, comme root ou en utilisant sudo ). Dans certains cas, il peut rendre votre système inutilisable en cassant le système Python.

Comment installer des paquets en utilisant pip dans l'environnement virtuel local.

32voto

Takkat Points 135194

Dans le cas où nous ne voulons pas importer de manière non désirée un module en question (ce qui se produirait dans un module try ), nous pouvons utiliser sys.modules pour tester les modules qui sont installés y ont été importés auparavant.

Dans le numéro de Python Shell :

>>> import sys

Ensuite, testez les modules installés :

>>> 'numpy' in sys.modules
True
>>> 'scipy' in sys.modules
False

Notez que seuls les modules qui ont été importés avant donnent True sur ce test, tous les autres modules (même s'ils sont installés) donnent un résultat de False.

Une autre alternative à try un import dans la console Python fait appel à la commande intégrée help() fonction. Cela ne donnera pas de documentation pour les modules non installés, par exemple.

>>> help('scipy')
no Python documentation found for 'scipy'

La sortie de très longs documents d'aide des modules installés peut être interrompue avec Q .

Maintenant, pour installer les modules manquants, il est recommandé d'utiliser la fonction Gestion des paquets Ubuntu (et non pas à la manière du pip Python) parce que nous avons besoin d'un accès root et aussi pour éviter de perturber notre système fortement dépendant de Python. Pour le module en question, ce serait par exemple :

sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3

Après l'installation, nous pouvons alors les ajouter à la sys.modules en les important une fois.

21voto

cuonglm Points 2255

Un autre moyen est le pkgutil module. Fonctionne avec Python 2 et 3 :

python -c 'import pkgutil; print(1 if pkgutil.find_loader("module") else 0)'

Vous devez remplacer module avec le nom de votre module, exemple :

$ python -c 'import pkgutil; print(1 if pkgutil.find_loader("math") else 0)'
1

17voto

OozeMeister Points 335

Je sais que l'OP a demandé à l'origine une solution après avoir démarré Python, mais en dehors de Python j'utilise pip . Sur ubuntu : sudo apt-get install python-pip s'il n'est pas déjà installé.

Ensuite, pour voir quels modules tiers sont disponibles, il suffit d'exécuter :

pip freeze

Ou même

pip list

Et les deux vous montreront tous les modules installés et leurs versions.

Si le module que vous recherchez n'est pas installé, la plupart du temps, vous pouvez facilement l'installer avec pip :

pip install <module-name>

Si vous n'êtes pas sûr de l'existence d'un module ou de son nom PyPI, utilisez la fonction pip search :

pip search <keyword>

13voto

Avinash Raj Points 72686

Vous pourriez mettre le code à l'intérieur de try , except bloc.

$ python3 -c "\
try:
    import cow  
    print('\nModule was installed')
except ImportError:
    print('\nThere was no such module installed')"

There was no such module installed

$ python3 -c "\
try:
    import regex
    print('\nModule was installed')
except ImportError:
    print('\nThere was no such module installed')"

Module was installed

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X