Disponibilizando um pacote virtual via sys.modules
Digamos que eu tenha um pacote "mylibrary".
Quero disponibilizar "mylibrary.config" para importação, como um módulo criado dinamicamente ou como um módulo importado de um local totalmente diferente que seria basicamente "montado" dentro do espaço de nomes "mylibrary".
Ou seja, eu faço:
import sys, types
sys.modules['mylibrary.config'] = types.ModuleType('config')
Dada essa configuração:
>>> import mylibrary.config # -> works
>>> from mylibrary import config
<type 'exceptions.ImportError'>: cannot import name config
Ainda mais estranho:
>>> import mylibrary.config as X
<type 'exceptions.ImportError'>: cannot import name config
Portanto, parece que usando a importação direta funciona, as outras formas não. É possível fazer isso funcionar também?