189 votes

Comment lister les modules importés?

Comment énumérer tous les modules importés?

E. g. Je voudrais obtenir ['os', 'sys'] à partir de ce code

import os
import sys

218voto

Glenn Maynard Points 24451
import sys
sys.modules.keys()​​​

Une approximation de l'obtention de toutes les importations pour le module en cours seulement serait d'inspecter globals() pour les modules:

import types
def imports():
    for name, val in globals().items():
        if isinstance(val, types.ModuleType):
            yield val.__name__

Ce ne sera pas de retour locales importations, ou de la non-module importations comme from x import y. Notez que cela renvoie val.__name__ de sorte que vous obtenez le module d'origine nom si vous avez utilisé import module as alias; le rendement du nom de la place si vous voulez que l'alias.

46voto

Marcin Points 25366

Trouver l'intersection de sys.modules avec globals:

import sys
modulenames = set(sys.modules)&set(globals())
allmodules = [sys.modules[name] for name in modulenames]

12voto

Mike Axiak Points 6349
print [key for key in locals().keys()
       if isinstance(locals()[key], type(sys)) and not key.startswith('__')]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X