Differences between revisions 1 and 2
Revision 1 as of 2005-02-21 05:44:20
Size: 630
Editor: aaron
Comment: notes on dynamically loading Python modules
Revision 2 as of 2008-11-15 14:00:47
Size: 630
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

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.