Thực hành tốt hơn nhiều để tránh sử dụng sys.exit () và thay vào đó nâng / xử lý các ngoại lệ để cho phép chương trình kết thúc sạch sẽ. Nếu bạn muốn tắt trac trở lại, chỉ cần sử dụng:
sys.trackbacklimit=0
Bạn có thể đặt phần này ở đầu tập lệnh của mình để nén tất cả đầu ra theo dõi, nhưng tôi thích sử dụng nó một cách tiết kiệm hơn, ví dụ "các lỗi đã biết" trong đó tôi muốn đầu ra sạch, ví dụ như trong tệp 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."
Nếu CalledProcessError bị bắt, đầu ra sẽ như thế này:
[me@test01 dev]$ ./foo.py
usage: uptime [-V]
-V display version
Process failed
subprocess.CalledProcessError: Command '['uptime', '--help']' returned non-zero exit status 1
Nếu có bất kỳ lỗi nào khác xảy ra, chúng tôi vẫn nhận được đầu ra theo dõi đầy đủ.