If you specify the optimize option in your setup.py, this will only be used for the compiling of the needed modules, not for your main module! For example if you have the following setup.py:

   1 from distutils.core import setup
   2 import py2exe
   4 setup(
   5         options={"py2exe":{"optimize":2}},
   6         console=["beep.py"]
   7 )

The bytecode embedded in the resulting .exe will not be optimised. To get optimised bytecode, you need to call the setup.py like so:

python -OO setup.py py2exe