7

I use the following snippet to drop into a Python shell mid-program. This works fine, but I only get the standard console. Is there a way to do the same but using the IPython shell?

import code
class EmbeddedConsole(code.InteractiveConsole):
 def start(self):
 try:
 self.interact("Debug console starting...")
 except:
 print("Debug console closing...")
def print_names():
 print(adam)
 print(bob)
adam = "I am Adam"
bob = "I am Bob"
print_names()
console = EmbeddedConsole(locals())
console.start()
print_names()
asked Jan 31, 2009 at 22:29
1
  • Could you please mark Dereck's answer as it is most current now? Commented Oct 6, 2015 at 1:36

2 Answers 2

15

The answer by f3lix is no longer valid it seems, I was able to find this however:

At the top of your python script:

from IPython import embed

Wherever you want to spin up a console:

embed()
answered Nov 10, 2013 at 16:04
Sign up to request clarification or add additional context in comments.

Comments

2

Embedding IPython might be interesting for you.

Mininum of code to run IPython in your app:

from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell() # this call anywhere in your program will start IPython 
answered Jan 31, 2009 at 22:35

1 Comment

See below, now there is an embed function from IPython can be used instead.

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.