Tengo problemas con la sustitución de mis propios módulos incorporados en Python (específicamente el módulo de registro). Aquí está mi diseño del proyecto:Otro problema de importación absoluta
run.py
package/
__init__.py
logging/
__init__.py
...
run.py
from package import main
main()
paquete/__ init__.py
from __future__ import absolute_import
import logging
import logging.config
def main():
logging.config.fileConfig(...)
paquete/registro/__ init__.py
class Logging(object):
pass
Como se encuentra en este momento, el código anterior funciona. Tan pronto como intento importar la clase de registro de package.logging así:
from __future__ import absolute_import
import logging
import logging.config
from package.logging import Logging
def main():
logging.config.fileConfig(...)
consigo un error:
AttributeError: 'module' object has no attribute 'config'
He leído las notas de la versión PEP 328 y encontré importaciones en términos absolutos a ser bastante sencillo. Lamentablemente, no he sido capaz de resolver esto.
¿Qué me falta aquí?
usando su ejemplo parece funcionar. Sin embargo, ahora debo referirme a la clase Logging como logging. Logging. Pruebas adicionales revelan que "desde el registro de importación de registro" no parece funcionar como sugiere PEP 328. Todavía no entiendo por qué "desde el registro de importación de paquetes no funciona". ¿No es una importación absoluta? – kierse
¿Qué versión de python estás usando? Si es una versión anterior (digamos 2.4) las importaciones relativas pueden no funcionar, o al menos, no funcionar como se esperaba. – Soviut
Estoy ejecutando Python 2.6.2 – kierse