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

Reply via email to