Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Re: 2.6 and sys.exit() (http://www.velocityreviews.com/forums/t705122-re-2-6-and-sys-exit.html)

r 11-13-2009 04:22 AM

Re: 2.6 and sys.exit()
 
On Nov 12, 10:07*pm, hetchkay <hetch...@gmail.com> wrote:
> Hello,
>
> I have the following in exit.py:
> import sys
> sys.exit(0)
>
> I now try 'python -i exit.py':
>
> In 2.5, the script exits as I would expect.
>
> In 2.6, the following error is printed:
>
> Traceback (most recent call last):
> * File "exit.py", line 2, in <module>
> * * sys.exit(0)
> SystemExit: 0
>
>
>
> I couldn't find anything related to this in "What's new in 2.6".



Look here ;-)
http://docs.python.org/library/excep...ons.SystemExit


r 11-13-2009 04:26 AM

Re: 2.6 and sys.exit()
 
PS: Python even answers questions:

>>> import sys
>>> help(sys.exit)

Help on built-in function exit in module sys:

exit(...)
exit([status])

Exit the interpreter by raising SystemExit(status).
If the status is omitted or None, it defaults to zero (i.e.,
success).
If the status is numeric, it will be used as the system exit
status.
If it is another kind of object, it will be printed and the system
exit status will be one (i.e., failure).

Just think of Python as a programmers version of the "Magic 8 balls".

John Yeung 11-13-2009 04:50 AM

Re: 2.6 and sys.exit()
 
On Nov 12, 11:22 pm, r <rt8...@gmail.com> wrote:
> On Nov 12, 10:07 pm, hetchkay <hetch...@gmail.com> wrote:
> > I have the following in exit.py:
> > import sys
> > sys.exit(0)

>
> > I now try 'python -i exit.py':

>
> > In 2.5, the script exits as I would expect.

>
> > In 2.6, the following error is printed:

>
> > Traceback (most recent call last):
> > File "exit.py", line 2, in <module>
> > sys.exit(0)
> > SystemExit: 0

>
> > I couldn't find anything related to this in "What's new in 2.6".

>
> Look here ;-)
> http://docs.python.org/library/excep...ons.SystemExit


How does that answer the OP's question? Namely, how to make 2.6
behave like 2.5? (Even saying "You can't make 2.6 behave like 2.5"
would have been a better answer.)

Failing that, how about something that explains why 2.6 behaves
differently than 2.5, and why one of them is better or more correct
than the other?

Personally, I think 2.6's is probably the more correct behavior.
Specifically, if the point of the -i command line option is to force
interactive mode after completion of the script (which in this case
completed with sys.exit), then it should go to interactive mode
regardless of whether the script terminates "normally" or not. I
think 2.5's behavior of allowing interactive mode to be skipped is
against the spirit of -i. Unless -i meant something different in 2.5.

Is there some kind of environment variable to set up to control this?

John

John Yeung 11-13-2009 05:02 AM

Re: 2.6 and sys.exit()
 
On Nov 12, 11:32*pm, hetchkay <hetch...@gmail.com> wrote:
> But I don't understand why the interpreter does not exit in 2.6 but
> does exit in 2.5. Well, I do not need to understand that but I need to
> know how to get the interpreter to exit in 2.6.


Well, taken at face value, I would say the answer is to not use the -i
option. ;) But I assume you would like to be able to sometimes enter
interactive mode after the script completes but sometimes not?

That I don't know how to do, but I would think it is either very
simple or impossible. Surely someone more knowledgeable will be able
to say which it is.

Also, if you present your reason for wanting such behavior, maybe
people can suggest alternatives that will serve your needs, even if
not exactly replicating what you had in 2.5.

John


All times are GMT. The time now is 04:45 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.