def _run_interpreter(variables, banner): """ Runs a Python interpreter console and blocks until the user exits it. :param variables: Interpreters variables (locals) :param banner: Start-up banners """ # Script-only imports import code try: import readline import rlcompleter readline.set_completer(rlcompleter.Completer(variables).complete) readline.parse_and_bind("tab: complete") except ImportError: # readline is not available: ignore pass # Start the console shell = code.InteractiveConsole(variables) shell.interact(banner)