Pour élaborer sur la réponse de l'IVA: embedding-a-shell, incoporating code
et ipython.
def prompt(vars=None, message="welcome to the shell"):
#prompt_message = "Welcome! Useful: G is the graph, DB, C"
prompt_message = message
try:
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed(argv=[''],banner=prompt_message,exit_msg="Goodbye")
return ipshell
except ImportError:
if vars is None: vars=globals()
import code
import rlcompleter
import readline
readline.parse_and_bind("tab: complete")
# calling this with globals ensures we can see the environment
print prompt_message
shell = code.InteractiveConsole(vars)
return shell.interact
p = prompt()
p()
Merci à tous! Pour mémoire, la meilleure façon d'utiliser le module de code pour ce faire est le suivant: code d'importation code.interact (= GLOBALS locales()) –
Pour obtenir des variables locales dans l'espace de noms aussi bien, vous avez besoin ' code.interact (local = dict (globals(), ** locals()) '. Notez l'ajout de' ** locals' Je me posais cette question moi-même, et votre commentaire était la meilleure réponse que j'ai trouvée: - –