import sys import os import atexit import readline histfile = os.path.expanduser('~/.pythonhistory') try: readline.read_history_file(histfile) except IOError: pass def write_history(readline=readline, histfile=histfile): try: readline.write_history_file(histfile) except IOError: pass atexit.register(write_history) if sys.version_info.major == 3: sys.ps1 = "3>>> " sys.ps2 = "3... " else: sys.ps1 = "2>>> " sys.ps2 = "2... " def hijack_prompt(): old_except = sys.excepthook def new_except(type, value, traceback): name_ = type is NameError and value.args[0] in ["name 'q' is not defined", "name 'e' is not defined"] syntax_ = type is SyntaxError and value.text in [":q\n", ":e\n"] if name_ or syntax_: print("Moriturus te saluto.") exit() old_except(type, value, traceback) sys.excepthook = new_except hijack_prompt() del readline, histfile, atexit, write_history, sys, os, hijack_prompt