Digamos que tengo un paquete "mylibrary".Haciendo un paquete virtual disponible a través de sys.modules
Quiero que "mylibrary.config" esté disponible para importar, ya sea como un módulo creado dinámicamente, o como un módulo importado de un lugar completamente diferente que básicamente se "montará" dentro del espacio de nombres "mylibrary".
Es decir, que hago:
import sys, types
sys.modules['mylibrary.config'] = types.ModuleType('config')
Teniendo en cuenta que la configuración:
>>> import mylibrary.config # -> works
>>> from mylibrary import config
<type 'exceptions.ImportError'>: cannot import name config
Aún más extraño:
>>> import mylibrary.config as X
<type 'exceptions.ImportError'>: cannot import name config
Así que parece que los usuarios de las obras directos de importación, las otras formas no haga. ¿Es posible hacer esos trabajos también?