On Nov 3, 7:49 pm, Matt McCredie <mccre...@gmail.com> wrote: > iu2 <israelu <at> elbit.co.il> writes: > > > > > Hi, > > > Having a file called funcs.py, I would like to read it into a string, > > and then import from that string. > > That is instead of importing from the fie system, I wonder if it's > > possible to eval the text in the string and treat it as a module. > > > For example > > > with file('funcs.py') as f: txt = r.read() > > string_import(txt, 'funcs') # is string_import possible? > > > to have now a module called funcs with the functions defined in > > funcs.py. > > You can do something like this: > > import types > import sys > > mymodule = types.ModuleType("mymodule", "Optional Doc-String") > > with file('funcs.py') as f: > txt = f.read() > exec txt in globals(), mymodule.__dict__ > sys.modules['mymodule'] = mymodule > > Note that you shouldn't exec untrusted code. > You might also look at the __import__ funciton, which can import by python > path. > You might also look at the imp module. > > Matt
Thanks, it seems simpler than I thought. I don't fully understand , though, the exec statement, how it causes the string execute in the context of mymodule. -- http://mail.python.org/mailman/listinfo/python-list