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!")