Hoy noté algo extraño que me gustaría que me explicaran. No estaba 100% seguro de cómo expresar esto como una pregunta, por lo que Google está fuera de discusión. El módulo de registro no tiene acceso al módulo logging.handlers por alguna extraña razón. Pruébelo usted mismo si no me cree:
>>> import logging
>>> logging.handlers
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'handlers'
>>> import logging.handlers
>>> logging.handlers
<module 'logging.handlers' from '/usr/lib/python2.6/logging/handlers.pyc'>
¿Alguien puede explicar por qué sucede esto?
fuente
from module import *
. Casi siempre es un error.import zipper
yzipper.open()
sabrías exactamente a qué abierto estaba llamando. A la inversa,from zipper import *
seguido deopen()
la apertura incorporada o la cremallera, la apertura o algo más.import zipper as z
es mucho más preferido si se cansa de escribirzipper
numpy import *
porque algunas funciones numpy no funcionan a menos que importe todo numpy (un terrible defecto de diseño por su parte, en mi opinión), pero numpy tiene una gran cantidad de objetos que importa. Terminé sobrescribiendo muchas funciones (creo que la copia fue una ... Estoy demasiado cansado para verificar). Ahora importo numpy como np si voy a usar tanto numpy que no puedo soportar escribirlo una y otra vez.Thomas Wouters respondió muy bien a esta pregunta, pero, lamentablemente, solo encontré esta pregunta después de encontrar la respuesta en la documentación original. Con ese fin, pensé en agregar a esto con la esperanza de que aparezca más cerca de la parte superior del motor de búsqueda en el futuro.
PREGUNTA
import module_name module_name.sub_module_name(parameter)
RESPONDER
import module_name
La contribución clave con esta respuesta es la adición de AttributeError al intentar importar un 'módulo' o 'paquete'
¡Espero que esto ayude a alguien!
fuente
Recientemente me he enfrentado a la misma situación extraña. Entonces, apuesto a que ha eliminado alguna importación de lib de terceros. Eso eliminó lib contenido
from logging import handlers
ofrom logging import *
y le proporcionóhandlers
. Y en otro guión has tenido algo asíimport logging
ylogging.handlers
lo has usado y has pensado que es una forma en que las cosas funcionan como yo.fuente