Сделать виртуальный пакет доступным через sys.modules

Скажем, у меня есть пакет "mylibrary".

Я хочу сделать «mylibrary.config» доступным для импорта, либо как динамически создаваемый модуль, либо как модуль, импортированный из совершенно другого места, которое затем будет «подключено» внутри пространства имен «mylibrary».

То есть я делаю:

import sys, types
sys.modules['mylibrary.config'] = types.ModuleType('config')

Учитывая эту настройку:

>>> import mylibrary.config    # -> works

>>> from mylibrary import config
<type 'exceptions.ImportError'>: cannot import name config

Даже незнакомец

>>> import mylibrary.config as X
<type 'exceptions.ImportError'>: cannot import name config

Таким образом, кажется, что использование прямого импорта работает, а другие формы - нет. Можно ли заставить их работать?

Ответы на вопрос(3)

Ваш ответ на вопрос