from example another python python-import

example - python import from parent directory



¿Cómo verificar si se ha importado un módulo de Python? (5)

¿Cómo verifico si importé un módulo en algún lugar del código?

if not has_imported("sys"): print ''you have not imported sys''

La razón por la que me gustaría verificar si ya importé un módulo es porque tengo un módulo que no quiero importar porque a veces estropea mi programa.


Para los sys.modules respuestas aceptadas, me gustaría añadir una advertencia que tener cuidado con el cambio de nombre módulos de importación:

>>> import sys >>> import datetime as dt >>> ''dt'' in sys.modules False >>> ''datetime'' in sys.modules True


Pruebe el nombre del módulo en el diccionario sys.modules :

import sys modulename = ''datetime'' if modulename not in sys.modules: print ''You have not imported the {} module''.format(modulename)

De la documentación:

Este es un diccionario que asigna nombres de módulos a módulos que ya se han cargado.


sys.modules utilizar para probar si un módulo ha sido importada (estoy usando unicodedata como ejemplo):

>>> import sys >>> ''unicodedata'' in sys.modules False >>> import unicodedata >>> ''unicodedata'' in sys.modules True


sys.modules contiene todos los módulos utilizados en cualquier lugar de la instancia actual del intérprete y, por lo tanto, aparece si se importa en cualquier otro módulo de Python.

dir() comprueba si el nombre se definió en el espacio de nombres actual.

La combinación de los 2 es más seguro que cada uno por separado y funciona siempre que no se define una copy sí mismo.

if (''copy'' in sys.modules) and (''copy'' in dir()):


if "sys" not in dir(): print("sys not imported!")