[Python-Dev] Freeze hacks
Thomas Heller
thomas.heller@ion-tof.com
Wed, 18 Jul 2001 18:50:34 +0200
From: "Guido van Rossum" <guido@digicool.com>
> > > > Very good idea IMO, but 'if 0:' is optimized away.
> > >
> > > I'm not sure I understand. freeze does not optimize away such a code
> > > block. Under which condition is that optimized away?
> > >
> > The Python compiler itself. 'if 0: import whatever' does
> > not generate any byte code. Modulefinder (used by freeze,
> > py2exe, and Gordon's installer) checks the compiled byte code
> > for import statements.
>
> Good catch, Thomas.
>
> I find defining a variable _FAKE a bit cumbersome as a work-around. I
> would suggest instead:
>
> if 1==0:
> import whatever
>
> since the optimizer only optimizes out "if 0:".
If the optimizer becomes more intelligent
in the future, and also probably easier to document
the purpose would be to use an (uncalled) function:
def _freeze_hints():
import spam
Just another idea,
Thomas