Angenommen, ich habe ein Paket "mylibrary".Ein virtuelles Paket über sys.modules verfügbar machen
Ich möchte "mylibrary.config" für den Import zur Verfügung stellen, entweder als dynamisch erzeugtes Modul oder als ein Modul, das von einem völlig anderen Ort importiert wurde, der dann im Namespace "mylibrary" "mounted" würde.
Das heißt, ich mache:
import sys, types
sys.modules['mylibrary.config'] = types.ModuleType('config')
Da Setup:
>>> import mylibrary.config # -> works
>>> from mylibrary import config
<type 'exceptions.ImportError'>: cannot import name config
Noch seltsamer:
>>> import mylibrary.config as X
<type 'exceptions.ImportError'>: cannot import name config
So scheint es, dass die direkten Import Werke verwenden, die anderen Formen unterlassen Sie. Ist es möglich, dass diese auch funktionieren?