Comment savoir si un module python est installé ou non dans le système: Vous pouvez faire un test très facile en 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 packages correspondants depuis le référentiel. Vous pouvez par exemple installer enscipy
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 python-modules en utilisant uniquement le référentiel officiel Ubuntu et de ne pas utiliser la pip
méthode en tant que superutilisateur (c'est-à-dire, en tant que root
ou en utilisant sudo
). Dans certains cas, cela peut rendre votre système inutilisable en cassant python.
Comment installer des packages en utilisant pip
l'environnement virtuel local.
vpython
vous devez l'installer en tant quesudo apt-get install python-visual libgtkglextmm-x11-1.2-dev
sudo pip
; cela peut casser le système python. Utilisez apt-get pour installer des paquets pour le système python. Vous pouvez utiliserpip --user
option ou virtualenv pour installer vous-même les packages Python.Si nous ne souhaitons pas importer de manière indésirable un module en question (ce qui se produirait dans une
try
instruction), nous pouvons nous en servirsys.modules
pour tester les modules installés et importés auparavant.Dans le problème du shell Python:
Puis testez les modules installés:
Notez que seuls les modules importés avant donnent
True
ce test, tous les autres modules (même installés) génèrentFalse.
Une autre alternative à
try
uneimport
instruction de la console python est l’appel de lahelp()
fonction intégrée . Cela ne donnera pas de documentation pour les modules non installés, par exempleLa sortie de très longs documents d’aide des modules installés peut être interrompue Q.
Maintenant, pour installer les modules manquants, il est recommandé d’utiliser la gestion des paquets Ubuntu (et non la méthode du pip Python) car nous avons besoin d’un accès root et également d’éviter de perturber notre système, qui dépend fortement de Python. Pour le module en question, par exemple:
Après l'installation, nous pouvons ensuite les ajouter au
sys.modules
dictionnaire en les important une fois.la source
sys.modules
ne contient que des modules déjà importés . Ce n'est donc pas un moyen fiable de vérifier si un module a été installé. Le test le plus fiable consiste à utiliser untry/except
et piéger leImportError
, comme plusieurs autres l'ont déjà suggéré.sys.modules
n’est absolument pas pertinent et je pense que toute mention à ce sujet est trompeuse. Mais peut-être que c'est juste moi.sys.modules
n'est pas une aide ici.Une autre façon est le
pkgutil
module. Fonctionne à la fois avec Python 2 et 3:Vous devez remplacer
module
par le nom de votre module, exemple:la source
print()
fonctionnera également très bien dans Python 2; Elle est traitée comme une syntaxe de groupe avec parens et n'a aucun effet secondaire. Ce n'est que lorsque vous souhaitez ajouter plusieurs éléments (car dansprint('a', 'b')
ce cas, ils seront traités comme des élémentstuple
dont vous avez besoinfrom __future__ import print_function
, mais ce n'est pas applicable dans ce cas, vous pouvez simplement écrire du code compatible en aval en ajoutant les parens (j'ai testé mes modifications en Python 2 et 3)exit
qu'il puisse être utilisé dans un contexte de shell:python -c 'import pkgutil; exit(0 if pkgutil.find_loader("math") else 2)'
Je sais que l’opérateur avait initialement demandé une solution après avoir démarré Python, mais j’utilise en dehors de Python
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, lancez simplement:
Ou même
Et tous les deux vous montreront tous les modules installés et leurs versions.
Si le module que vous recherchez n'est pas installé, vous pouvez généralement l'installer facilement avec pip:
Si vous n'êtes pas sûr de l'existence d'un module ou de son nom PyPI, utilisez
pip search
:la source
pip show <module-name>
montrera si un paquet est installé, par exemplepip show numpy
.Vous pouvez mettre le code à l'intérieur
try
,except
bloquer.la source
Pour fournir une autre réponse, par souci d'achèvement:
Vous pouvez (ab) utiliser l'
-m
option. De la page de manuel de Python:Ce qui nous donnera:
Mais pour les modules inexistants, cela nous donnera:
Nous pourrions utiliser
grep
pour correspondre à cela:C'est un peu bidouillé, et pas ce à quoi il
-m
était destiné; mais c'est la méthode qui nécessite le moins de frappe si vous voulez un test rapide :-)la source
grep -q
rend la redirection vers null inutile./dev/null
fil des ans: - /J'ai écrit un exemple en Python:
la source
Shell oneliner check (utile pour le provisionnement)
J'ai constaté que pour rendre mon infrastructure d'approvisionnement ** idempotente, je devais être en mesure de rechercher un package dans le shell dans un doubleur. J'ai construit sur la réponse de @ cuonglm. J'ai dû inverser le
1
et0
parce que je produis un état de sortie plutôt que d'imprimer une chaîne.Vous pouvez remplacer le
sys.argv[1]
par le nom entre guillemets unique de votre paquet, mais pour mes scripts de provisioning, j'aime la lisibilité de l'avoir à la fin.** Je me rends compte que chef , marionnette et ansible ont tous des plugins pour gérer les paquets python, mais vous pouvez vous retrouver dans une situation comme moi, où vous utilisez une version obsolète et ne souhaitez pas utiliser de plugins obsolètes.
la source
On peut également utiliser
pydoc modules
, avec lequel on peut filtrer,grep
un module spécifique. La sortie est affichée sous forme de colonne. Le seul inconvénient de cette approche est qu’elle inclura également les fichiers python dans le répertoire de travail actuel. Néanmoins, je l’utilise moi-même la plupart du temps et c’est l’une des approches les plus citées sur cette question: https://stackoverflow.com/q/739993/3701431la source
À partir du shell Ubuntu, par défaut bash, aussi simple que
Exemples
Et, si vous avez des doutes sur le cas (bien que je pense que tous les noms de paquets sont toujours en minuscules):
la source
Au moment de la rédaction, cela
pip show ...
semble être le moyen le plus simple: https://pip.pypa.io/fr/stable/reference/pip_show/Mais il est silencieux (c’est-à-dire ne renvoie rien) lorsque le package n’est pas installé.
la source