On Nov 2, 1:29 pm, "Bart." <[EMAIL PROTECTED]> wrote: > Friday 02 of November 2007 20:53:12 matthias napisa (a): > > > > > On Nov 2, 12:12 pm, "Matt McCredie" <[EMAIL PROTECTED]> wrote: > > > On 11/2/07, matthias <[EMAIL PROTECTED]> wrote: > > > > Howdy ! > > > > > I started using the assert() stmt and found it quite useful :-) I > > > > have only one problem: I don't > > > > know how to turn them off again. > > > > > I know that "-O" turns off assertions in general. However, how do I > > > > pass thus parameter to > > > > python to an executable script ? > > > > > I have tried the following: > > > > > 1. > > > > !#/usr/bin/env python -O > > > > > -> Fails with this msg: /usr/bin/env: python -O: No such file or > > > > directory > > > > > Also, putting it in quotes won't do it. > > > > > 2. > > > > Passing the "-O" to the runnable script won't work either. > > > > > Here is my question: How do I maintain debug / release builds that > > > > allow me to switch > > > > debug stmts, like assert, on / off ? > > > > > Thanx, > > > > Matthias > > > > Use: > > > python -O -mcompileall path > > > > That command will compile all of the files in the given path and > > > produce .pyo files. If the .pyo file is present and up-to-date it will > > > be used instead of the .py file. > > > > Alternatively you could do this: > > > > python -O -mpy_compile somefile.py > > > > which can be used to compile one file at a time. > > > > Many Python programs and modules include a compile step as part of > > > their installation process. There is also a -OO option, which will > > > strip doc-strings as well. > > > > Matt > > > Thanx for your reply , Matt ! > > > However, I think I am missing something. > > > Here is my example prog, assert.py, with the executable bit set: > > > #!/usr/bin/env python > > > assert 1 > 1, "ASSERTTION !" > > > Running this: > > > # python ./assert.py > > Traceback (most recent call last): > > File "assert.py", line 3, in ? > > assert 1 > 1, "ASSERTTION !" > > AssertionError: ASSERTTION ! > > > leads to the expected result. > > > Now I do this as you've recommended: > > > # python -O -mpy_compile assert.py > > > This indeed creates a file with the name assert.pyo. That must be the > > optimized one. > > > Now I try this: > > > # ./assert.py > > Traceback (most recent call last): > > File "./assert.py", line 3, in ? > > assert 1 > 1, "ASSERTTION !" > > AssertionError: ASSERTTION ! > > > Ok, so it still uses the unoptimized version. > > > Now I try this: > > > # chmod 755 assert.pyo > > # ./assert.pyo > > bash: ./assert.pyo: cannot execute binary file > > > Here is my problem: I want to have an optimized executable version of > > assert.py. > > > I am assuming that I am thinking in an unconventional way wrt Python. > > If so, then > > how do you start your optimized python scripts ? > > > Thanx, > > Matthias > > check this: > > python ./assert.pyo
Yes, I know that this works. Thanx. However, that's not what I was going for. Essentially, I am targeting a build system that allows me to build debug / release versions of my Python code. I know how to build the Python code, but how do I package it so that I can simply dump it on the test system with either build type and the same calling interface ? Thanx, Matthias -- http://mail.python.org/mailman/listinfo/python-list