You can load a module dynamically like so:

   1 __import__("os")

If you do that, though, "os" isn't bound to anything.

   1 >>> __import__("os")
   2 <module 'os' from '/usr/lib/python2.3/os.pyc'>
   3 >>> os
   4 Traceback (most recent call last):
   5   File "<stdin>", line 1, in ?
   6 NameError: name 'os' is not defined
   7 >>>

Once you have the module, you probably want to find classes and functions and data inside of it.

Use getattr:

   1 >>> m=__import__("mine")
   2 >>> m
   3 <module 'mine' from 'mine.pyc'>
   4 >>> getattr(m, "eggs")
   5 4654
   6 >>> getattr(m, "ham")
   7 'Monty Python'

LoadingModulesDynamically (last edited 2008-11-15 14:00:47 by localhost)

Unable to edit the page? See the FrontPage for instructions.