How can I fix “ImportError: no module named shell”

2019-06-21 18:26发布

问题:

I've seen a number of people recommend that I use the following snippet to embed an IPython shell or drop to an IPython shell from e.g. a django view.

from IPython.Shell import IPShellEmbed
ipython = IPShellEmbed()
ipython()

But when I do this, I get

>>> from IPython.Shell import IPShellEmbed
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named Shell

How can I embed IPython or start an IPython console from an existing python app?

回答1:

The solution is to use the following instead:

import IPython
IPython.embed()

Issue 286 on the IPython github repo explains that the Shell module has moved and should no longer be used.