A Python script which searches for available interpreters ######################################################### :date: 2015-05-08 10:34 :author: Russell Ballestrini :tags: Code, DevOps, Python :slug: a-python-script-which-searches-for-available-interpreters :status: published :summary: This post describes how to write a polyglot -- in this case a script which runs as valid Bash or Python, to search for available Python interpreters. The script initially runs as Bash but upon finding a first match, the script will call itself again this time using the expected Python interpreter in interactive mode! And now, for the polyglot code: :: #!/bin/sh # reinvoke this script with bpython -i, ipython -i, or python -i # reference: https://unix.stackexchange.com/a/66242 ''':' if type bpython >/dev/null 2>/dev/null; then exec bpython -i "$0" "$@" elif type ipython >/dev/null 2>/dev/null; then exec ipython -i "$0" "$@" else exec python -i "$0" "$@" fi ''' from helpers import ( base_parser, get_hvpc_from_args, ) parser = base_parser('Interactive Python interpreter & connection to hvpc') args = parser.parse_args() hvpc = get_hvpc_from_args(args) print('\nYou now have access to the hvpc object, for example: hvpc.roles\n') In this case you can see that we setup the interactive interpreter's environment to create an hvpc (Husky VPC) object for exploration. If you want a pure python version that doesn't use a bash/python polygot, checkout this code I wrote: https://github.com/russellballestrini/botoform/blob/master/botoform/plugins/repl.py .. contents::