command line

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

Dans le terminal,après avoir lancé 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é ?

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                                # module mathématique existe dans le système

$ python -c "import numpy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy
$ echo $?
1                                # le module numpy n'existe pas dans le système

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

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

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

Avertissement : Il est fortement recommandé d'installer les modules python uniquement à l'aide du référentiel officiel Ubuntu et de ne pas utiliser la méthode pip en tant quesuperutilisateur (c'est-à-dire en tant que root ou en utilisant sudo ). Dans certains cas, cela peut rendre votre système inutilisable en cassant le système python.

Comment installer des packages à l'aide de pip dans un environnement virtuel local.




Au cas où nous ne voudrions pas importer de manière indésirable un module en question (ce qui se produirait dans une instruction try ), nous pouvons utiliser sys.modules pour tester les modules qui sont installés et qui ont été importés auparavant.

Dans le problème du shell python :

>>> 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 auparavant donnent True sur ce test, tous les autres modules (même s'ils sont installés) donnent False.

Une autre alternative pour try une instruction d' import ation dans la console python consiste à appeler la fonction intégrée help() . 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 avecQ.

Maintenant, pour installer les modules manquants, il est recommandé d'utiliser la gestion des packages Ubuntu (et non la méthode Python pip) car nous avons besoin d'un accès root et également pour éviter de gâcher 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 ensuite les ajouter au dictionnaire sys.modules en les important une fois.