On Wed, 12 Mar 2008 12:58:33 -0700 (PDT), George Sakkis <[EMAIL PROTECTED]> wrote: >On Mar 12, 12:22 pm, mrstephengross <[EMAIL PROTECTED]> wrote: > >> Hi all. I've got a python file called 'foo' (no extension). I want to >> be able to load it as a module, like so: >> >> m = __import__('foo') >> >> However, the interpreter tells me "No module named foo". If I rename >> it foo.py, I can indeed import it. Is the extension required? Is there >> any way to override that requirement? > >You can use execfile: > >foo = {} >execfile('foo', foo) > >Apart from the different syntax in accessing the module globals >(attributes with __import__ (foo.x) vs dict entries with execfile >(foo['x'])), there are probably more subtle differences but I can't >tell for sure. It would be nice if someone more knowledgeable can >compare and contrast these two appraches.
Another difference is that when you import a module, its code is (usually) only executed once. Each import after the first just returns a reference to the already-created module object. When you use execfile, the code is re-evaluated each time. Jean-Paul -- http://mail.python.org/mailman/listinfo/python-list