Skip to content

Instantly share code, notes, and snippets.

@ducin
Last active January 1, 2022 16:41
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ducin/6882621 to your computer and use it in GitHub Desktop.
Save ducin/6882621 to your computer and use it in GitHub Desktop.
Python script opening interactive console with current interpreter state. Thanks to readline/rlcompleter, you may use up/down arrows (history browse) or left/right arrows (line edition), see http://stackoverflow.com/questions/19754458/python-open-interactive-console-from-script)
"""
Console module provide `copen` method for opening interactive python shell in
the runtime.
"""
import code
import readline
import rlcompleter
def copen(_globals, _locals):
"""
Opens interactive console with current execution state.
Call it with: `console.open(globals(), locals())`
"""
context = _globals.copy()
context.update(_locals)
readline.set_completer(rlcompleter.Completer(context).complete)
readline.parse_and_bind("tab: complete")
shell = code.InteractiveConsole(context)
shell.interact()
import console
example_list = [1, 2, 3]
example_tuple = ('abc', 'def')
console.copen(globals(), locals())
print 'this will be continued'
@ducin
Copy link
Author

ducin commented Oct 8, 2013

After cloning this gist, run

python test.py

in the console and type dir() to see that all modules, variables etc. are available

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment