Набагато краща практика уникати використання sys.exit () і замість цього піднімати / обробляти винятки, щоб програма могла закінчитись чисто. Якщо ви хочете вимкнути прослідкування, просто скористайтеся:
sys.trackbacklimit=0
Ви можете встановити це у верхній частині сценарію, щоб зменшити весь вихідний сигнал, але я вважаю за краще використовувати його більш щадно, наприклад, "відомі помилки", де я хочу, щоб результат був чистим, наприклад, у файлі foo.py:
import sys
from subprocess import *
try:
check_call([ 'uptime', '--help' ])
except CalledProcessError:
sys.tracebacklimit=0
print "Process failed"
raise
print "This message should never follow an error."
Якщо CalledProcessError спійманий, вихід буде виглядати приблизно так:
[me@test01 dev]$ ./foo.py
usage: uptime [-V]
-V display version
Process failed
subprocess.CalledProcessError: Command '['uptime', '--help']' returned non-zero exit status 1
Якщо виникає будь-яка інша помилка, ми все одно отримуємо повний результат відстеження.