В вашем случае ваша ошибка, вероятно, состоит в том, что у вас есть пустой блок кроме, который перехватывает исключение SystemExit, например:
import sys
try:
sys.exit(return_code)
except:
pass
Правильный способ решить вашу проблему - удалить часть , за исключением: , и вместо этого просто перехватить исключения, которые, как вы ожидаете, будут подняты. Например:
try:
# Code which could raise exceptions
except (NameError, ValueError):
# Do something in case of NameError or ValueError, but
# ignore other exceptions (like SystemExit)
Однако, если вы действительно хотите, чтобы ваша программа вышла, будет работать следующий код:
import os
try:
os._exit(return_code)
except:
pass
Это завершится даже с , за исключением: , поскольку он просто напрямую вызывает функцию C с тем же именем, которая убивает ваш процесс. Это не рекомендуется , если вы не знаете, что делаете, так как это не вызовет обработчиков очистки или очистки открытых буферов ввода-вывода.