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()
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()
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 

1 Comment

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

Your Answer

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.