PYO versus PYC Behavior

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Mon Dec 28 02:22:35 EST 2009


En Thu, 24 Dec 2009 12:32:47 -0300, Boris Arloff <boris.arloff at yahoo.com>  
escribió:

> All python docs and description indicate that optimization (-OO) does  
> not do much anything except the removal off pydoc. A single "O" removes  
> comments and asserts, and with the removal of pydoc with double "O"  
> option the *.pyo byte compile is left with pure executable code.  I am  
> experiencing a different behavior than described.
>  I am running Python 2.6.4 and have source code which I pre-compile  
> either into pyc or pyo files depending on the optimization switch  
> selected.  The pyo version fails to run with the main program module  
> failing to import any other modules, such as failing on the "import os"  
> statement (first line encountered).  However, the pyc version succeeds  
> and runs correctly.  This is with the same code modules, same python VM  
> and same machine. [...]

If you start the interpreter with "python" (no optimization), it will  
always look for .pyc files -- .pyo files are ignored.
If you start the interpreter with "python -O" or "python -OO", it will  
always look for .pyo files -- .pyc files are ignored.
Same applies for any implicit invocation, like a shebang line -- if it  
says e.g. #!/usr/env/python it will only search for .pyc files, not .pyo
Try the -v option to see which modules are loaded from where exactly.

-- 
Gabriel Genellina




More information about the Python-list mailing list