Powiedz, że mam pakiet "mylibrary".Udostępnianie pakietu wirtualnego za pośrednictwem sys.modules
Chcę, aby plik "mylibrary.config" był dostępny do importowania, albo jako dynamicznie tworzony moduł, albo moduł importowany z zupełnie innego miejsca, które następnie byłoby zasadniczo "montowane" w przestrzeni nazw "mylibrary".
Ie, robię:
import sys, types
sys.modules['mylibrary.config'] = types.ModuleType('config')
Zważywszy, że konfiguracja:
>>> import mylibrary.config # -> works
>>> from mylibrary import config
<type 'exceptions.ImportError'>: cannot import name config
Nawet obcy:
>>> import mylibrary.config as X
<type 'exceptions.ImportError'>: cannot import name config
Wydaje się więc, że za pomocą bezpośrednich prac na przywóz, innych form nie rób. Czy możliwe jest również wykonanie tych prac?