Frequently asked questions - ShuaiYAN/ipython GitHub Wiki
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
- Q. Can IPython run under IronPython/PyPy/Jython/other Python interpreters?
- Q. IPython crashes under OS X when using the arrow keys
- Q. Does IPython play well with Windows?
- Q. What is the best way to install IPython?
- Q. Why do I get garbage characters when long information is displayed by the pager?
- Q. Am I doing something foolish, or is this a limitation of using ipython with doctest?
- Q. Can IPython run under IronPython?
- Q. I'm really interested still but my question isn't here... where can I get support for specific problems?
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
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.
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
Yes, it most definitely does!
-
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.
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
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.
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 fromhttps://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.