Skip to content

Frequently asked questions

John Chain edited this page · 10 revisions
Clone this wiki locally

FAQ

This is the IPython Frequently Asked Questions page.

We are in the process of moving this type of Q&A to the IPython tag on stackoverflow. Please post any new questions there.

Q. Running IPython against multiple versions of Python

I would like to know if there is an easy way to install parallel versions of ipython? Actually, I would like to be able to use ipython with python 2.7 which is the default on my machine, and with python3.3 (compiled by hand).

Answer: The easiest way to do this is with virtual environments:

$ mkvirtualenv -p python2.7 py27
$ mkvirtualenv -p python3.3 py33
$ workon py33
$ pip install ipython
$ workon py27
$ pip install ipython

Q. Can IPython run under IronPython/PyPy/Jython/other Python interpreters?

Answer: The terminal-based shell should run on any interpreter which complies with the necessary version of Python. IPython 0.11 requires Python 2.6 or above, and as of June 2011, IronPython and PyPy both support this.

The most likely problems would come from Readline and from using the undocumented sys._getframe() function. On Windows we ship our own pyreadline, which might also work under IronPython. PyPy ships its own readline module, which should now work.

If IPython does not work under a supported interpreter, please file a bug.

Q. IPython crashes under OS X when using the arrow keys

Under some circumstances, using the arrow keys to navigate your input history can cause a complete crash of the Python interpreter.

Answer: This is due to a bug in the readline library (libedit) from the official builds. The easiest way to address this is to install readline separately:

easy_install -a readline

Q. Does IPython play well with Windows?

Yes, it most definitely does!

Q. What is the best way to install IPython?

  • pip install ipython works pretty much everywhere.
  • The classic python setup.py install still works, of course.
  • pip install -e git+https://github.com/ipython/ipython#egg=ipython is the quickest way to install from git master.

Q. Why do I get garbage characters when long information is displayed by the pager?

Answer: The color escapes used by IPython are not correctly interpreted by default by many common pagers ('less' included). The manual describes here the problem and its solution in detail, but the short version is that your bashrc file should contain:

export PAGER=less
export LESS=-r

Q. Am I doing something foolish, or is this a limitation of using ipython with doctest?

Answer: The latter, I'm afraid, but there's a workaround. The reason, deep down, is a clash between ipython's modification of sys.displayhook so you get nice output prompts, and the fact that the exec builtin is internally hardcoded to run sys.displayhook. So ipython collides with doctest (which uses 'exec') and all hell breaks loose.

Here's the workaround. First, your error (I called your file 'dtest'):

In [5]: doctest.testmod(dtest)
Out[5]: 1
**********************************************************************
File "dtest.py", line 8, in dtest
Failed example:
    x()
Expected:
    1
Got nothing
**********************************************************************
1 items had failures:
   1 of   3 in dtest
***Test Failed*** 1 failures.
Out[5]: (1, 3)

Now the workaround:

In [6]: iphook = sys.displayhook
In [7]: sys.displayhook = sys.__displayhook__
In [8]: doctest.testmod(dtest)
*** DocTestRunner.merge: 'dtest' in both testers; summing outcomes.
(0, 3)

Now you can reactivate ipython's displayhook if you want:

In [9]: sys.displayhook = iphook

You could wrap this little sys.displayhook dance in a utility function to ease things up.

Q. Can IPython run under IronPython?

Answer: Yes it is still a bit of effort.

  • download IronPython 2.7.4
  • add your C:/Program Files/IronPython 2.7 folder into PATH
  • download modified pyreadline install from source: ipy setup.py install
  • download ipython (1.0, 1.1 or 1.2.x), install from source: ipy setup.py install
  • replace C:/Program Files/IronPython/Lib/site-packages/IPython/external/pexpect/_pyexpect.py with one from https://github.com/paweljasinski/ipython/blob/ironpython-hack/IPython/external/pexpect/_pexpect.py
  • make sure you HOME environment variable is set to something reasonable
  • start: ipy.exe -X:Frames "c:/Program Files/IronPython 2.7/Scripts/ipython"

Note: it does not work with cygwin terminal

There is also a bug fix which didn't make to the 2.7.4. Either you need to rebuild 2.7.4 from sources or modify ipython as suggested.

Q. I'm really interested still but my question isn't here... where can I get support for specific problems?

As mentioned at the top: We are in the process of moving this type of Q&A to the IPython tag on stackoverflow. Please post any new questions there.

Something went wrong with that request. Please try again.