Кроме того, вы можете поймать SystemExit
и вернуться нормально:
def main():
try:
...
except SystemExit, e:
# return normally for exit() or exit(0). Otherwise, reraise.
if e.args and e.args[0]:
raise
Слегка расширяясь:
Причина, по которой это не работает, заключается в том, что ваш скрипт на Python не запускается как "обычный" CGI & mdash; среди прочего, есть оболочка с перехватом исключений, и sys.exit () реализован путем вызова исключения (которое не подклассифицирует Exception (), поэтому по умолчанию оно не перехватывается).
Я считаю это ошибкой в GAE; Вы можете подать отчет об ошибке. (OTOH, вам действительно не следует использовать sys.exit () в GAE, так как тогда неясно, можно ли повторно запустить вашу функцию main ().)