Jonathan Vanasco schrieb:
I'm a little unclear about import / __import__
I'm exploring dynamically importing modules for a project, and ran
into this behavior
works as expected:
app = __import__( myapp )
appModel = __import__( myapp.model )
but...
appname= 'myapp'
app = __import__( "%s" % appname )
appModel = __import__( "%s.model" % appname )
In the latter example, app and appModel will always seem to be
imported as 'myapp' , and I've yet to find a way to address the .model
namespace
I know 'dynamically importing modules' is cursed upon -- and I'm
likely rewriting hundreds of line of codes so I can work around this
with a registration system -- however I'd like to understand why this
occurs and know if what i'm trying is even possible.
Is it cursed upon? Didn't know that.
However, __import__ only gives you the topmost module - in your case myapp.
So you need to do it like this (untested):
name = "a.b.c.d"
mod = __import__(name)
for part in name.split(".")[1:]:
mod = getattr(mod, part)
print mod
Diez
--
http://mail.python.org/mailman/listinfo/python-list