How to suppress "DeprecationWarning: Old style callback, use cb_func(ok, store) instead"

Thomas Bellman bellman at lysator.liu.se
Tue Feb 6 03:52:12 EST 2007


"Gabriel Genellina" <gagsl-py at yahoo.com.ar> wrote:

> En Sat, 03 Feb 2007 07:35:22 -0300, Peter Otten <__peter__ at web.de>  
> escribió:

>> #!/usr/bin/env python2.5
>>
>> python2.5 will be that single argument and no options are possible at  
>> all.
>> What might be the reasons for such a seemingly arbitrary limitation?

> The shell parses that line, not Python, so you should look into its  
> documentation.

Bzzt!  In any modestly recent Unix version (meaning fifteen years
old or younger), it has been the kernel that parsed the #! line,
not the shell.

As for *how* the kernel parses that line, it varies between Unix
versions.  Linux, at least versions 2.4 and 2.6, takes everything
after the interpreter and passes it as a single argument to the
interpreter, with leading and trailing whitespace stripped.  Thus

    #! /usr/bin/interpreter  foo bar   gazonk del  

will give the parameter "foo bar   gazonk del" to the interpreter.

SunOS 5.10 (aka Solaris 10) on the other hand, splits the line on
whitespace and passes only the first word as parameter, and would
thus give only "foo" to the interpreter for the same #! line.

I seem to remember having used some Unix flavor that allowed
multiple words as arguments, and thus passed the four words
"foo", "bar", "gazonk" and "del" as arguments for the above #!
line, but I don't remember what Unix that was.


-- 
Thomas Bellman,   Lysator Computer Club,   Linköping University,  Sweden
"Adde parvum parvo magnus acervus erit"       ! bellman @ lysator.liu.se
          (From The Mythical Man-Month)       ! Make Love -- Nicht Wahr!



More information about the Python-list mailing list