Does python always need to compile ENTIRE program before it c an start to run it???
Daniel P. M. Silva
dsilva at ccs.neu.edu
Mon Nov 3 23:56:30 EST 2003
On Mon, 03 Nov 2003 18:34:33 -0500, Ellinghaus, Lance wrote:
> If I remember correctly, Yes.
> Python will import each module, compile if necessary, and then execute it.
> This might cause additional modules to be compiled, loaded, etc.. But Python
> will not import a module more than one time. Each additional time the import
> is called for the same module, Python just binds a new reference into the
> namespace.
>
What about this?
[/tmp] > cat > a.py
import b
print "module A loaded"
[/tmp] > cat > b.py
import a
print "module B loaded"
[/tmp] > python a.py
module A loaded
module B loaded
module A loaded
> -----Original Message-----
> From: seberino at spawar.navy.mil [mailto:seberino at spawar.navy.mil]
> Sent: Monday, November 03, 2003 3:28 PM
> To: Ellinghaus, Lance
> Cc: python-list at python.org
> Subject: Re: Does python always need to compile ENTIRE program before it c
> an start to run it???
>
>
> Lance
>
> Thanks for the info. I agree that the initial script you
> run must be compiled completely before it can execute.
> Does "completely" = all the imported modules too?
>
>> When Python loads a module (.py file) from an 'import' statement, it
>> will see if there is an already compiled version in the same directory
>> and named the same except for the '.pyc' or '.pyo' extension. If it
>> finds this file AND it is newer than the corresponding source code
>> (.py) then it will load the saved compilation and then run it. If the
>> file is not found or it is older than the source, then Python will
>> compile the source, attempt to save the compiled version, and then it
>> will execute it.
>
> The first word of your comments above is "When". So if Python doesn't load
> a module until 3 hours into the execution of a large Python program then
> your recipe above (including compilation of module) won't get run until 3
> hours AFTER execution starts right?
>
> Chris
More information about the Python-list
mailing list