Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: 2.6 and sys.exit()

Reply
Thread Tools

Re: 2.6 and sys.exit()

 
 
r
Guest
Posts: n/a
 
      11-13-2009
On Nov 12, 10:07*pm, hetchkay <(E-Mail Removed)> 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

 
Reply With Quote
 
 
 
 
r
Guest
Posts: n/a
 
      11-13-2009
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".
 
Reply With Quote
 
 
 
 
John Yeung
Guest
Posts: n/a
 
      11-13-2009
On Nov 12, 11:22 pm, r <(E-Mail Removed)> wrote:
> On Nov 12, 10:07 pm, hetchkay <(E-Mail Removed)> 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
 
Reply With Quote
 
John Yeung
Guest
Posts: n/a
 
      11-13-2009
On Nov 12, 11:32*pm, hetchkay <(E-Mail Removed)> 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
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
if and and vs if and,and titi VHDL 4 03-11-2007 05:23 AM



Advertisments