Installing ipython with readline on the mac

15,988

Solution 1

You can install everything you need with essentially one command using MacPorts. First download and install MacPorts from http://www.macports.org/.

Then just do the following in the terminal: 1) sudo port -v selfupdate
2) sudo port -v install py26-ipython

That will install python2.6, ipython for python 2.6 and readline for you. The command to start ipython will be located at /opt/local/bin/ipython2.6

Solution 2

To install ipython on Snow Leopard or Lion without using MacPorts, you can simply do:

sudo easy_install readline ipython

(Note that if you use the "pip" to install readline, then ipython won't see the readline library, not sure why).

Edit:

If you had ipython installed remove it with

sudo pip uninstall ipython

or

pip uninstall ipython #for virtualenvs

Then make sure you have installed readline first and reinstall iptyhon

pip install readline ipython

For some reasons, if readline wasn't present during the installation, it will install itself without support for readline or it use the default mac readline.

Solution 3

this worked for me (I'm using python 2.7, for other versions you'll need to edit):

cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
sudo mv readline.so readline.so.bak

install readline however you want (pip, homebrew, macports, etc)

pip install -U readline

Success! and it works with virtualenv, and virtualenvwrapper, and no need to modify ipython :)

Solution 4

The only working way on MacOS Mavericks is to:

  1. switch to your virtualenv workon myproject_name
  2. delete readline and ipython (if you installed it before) pip uninstall readline ipython
  3. install readline only via easy_install (pip - no work!) easy_install readline
  4. finally install ipython with pip pip install ipython

It's work well on my MacOS and tested a long time.

Solution 5

An alternative if you don't want to use ports. Caution: This is not upgrade safe.

Install ipython and readline as normal:

sudo easy_install -f http://ipython.scipy.org/dist/ readline ipython

Find the full path to your readline egg. For python 2.6 this will probably be:

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/readline-2.5.1-py2.6-macosx-10.3-fat.egg

Edit ipython with your favourite text editor:

vim `which ipython`

Before the final line in the file sys.exit, insert:

sys.path.insert(0,'PATH_TO_READLINE_EGG')

Save and exit (:wq).

Check readline is working correct:

ipython
Share:
15,988

Related videos on Youtube

Admin
Author by

Admin

Updated on April 17, 2022

Comments

  • Admin
    Admin about 2 years

    I am using ipython on Mac OS 10.5 with python 2.5.1 (I would actually like to use ipython for 2.6.1, but it doesn't seem to be available?)

    I installed ipython via easy_install. It works but is missing gnu readline (needed for nice searching of command line history with ctrl-R, etc.)

    I found a blog post and other sources saying this could be fixed by

    sudo easy_install -f http://ipython.scipy.org/dist/ readline

    However, this leads to build errors in readline.c , particularly undeclared functions like rl_compentry_func_t and rl_catch_signals.

    Has anyone seen these errors? Is there another way to get ipython installed with readline?

  • Carlton Gibson
    Carlton Gibson almost 14 years
    There's a discussion on the virtualenv group about the pip problem. (Summary: pip doesn't place its readline in front of the incompatible pre-installed version in sys.path) groups.google.com/group/python-virtualenv/browse_thread/thre‌​ad/…
  • Drake
    Drake almost 13 years
    I don't use MacPorts (I prefer homebrew), and this was the solution that worked for me.
  • Jacob Oscarson
    Jacob Oscarson about 12 years
    Thanks! Based on this I was able to mend my self-installed but readline-broken Py 2.7 on Snow Leopard.
  • Benson
    Benson about 12 years
    Sadly, as macports has fallen out of favor, I don't think this is the ideal solution any longer. Most folks seem to prefer homebrew these days.
  • zengr
    zengr about 12 years
    Worked for me too, simplest way.
  • hohonuuli
    hohonuuli about 12 years
    Yeah, I agree. In my defense, there was no homebrew when I answered the question.
  • Benson
    Benson about 12 years
    Agreed. It was a great answer, I just thought I'd mention it for folks who stumble on this via google.
  • Loïc Faure-Lacroix
    Loïc Faure-Lacroix almost 12 years
    It does work now, if ipython is already installed it won't work. You can add that you need to uninstall ipython. Ipython probably compile without readline or with the mac readline
  • Lorin Hochstein
    Lorin Hochstein almost 12 years
    @LoïcFaure-Lacroix Please feel free to edit my answer accordingly.
  • Andy Baker
    Andy Baker over 10 years
    The sudo mv step is the only thing that fixed the problem for me on Mavericks. After that I did pip uninstall for both followed by 'pip install readline ipython' inside my virtualenv.
  • smholloway
    smholloway about 9 years
    This is the simplest solution I've found on Yosemite. Thanks!