Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is the Python readline module not available on OS X?

The documentation of the Python readline module says "Availability: Unix". However, it doesn't appear to be available on OS X, although other modules marked as Unix are available. Here is what I'm using:

$ uname -a
Darwin greg.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
$ which python
/usr/bin/python
$ python
Python 2.3.5 (#1, Nov 26 2007, 09:16:55) 
[GCC 4.0.1 (Apple Computer, Inc. build 5363) (+4864187)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import readline
Traceback (most recent call last):
  File "", line 1, in ?
ImportError: No module named readline
>>> 

I have also installed Python 2.5 through MacPorts but readline is not available there either.

What can I do to provide readline functionality for Python's raw_input() function on OS X?

like image 739
Greg Hewgill Avatar asked Nov 29 '08 06:11

Greg Hewgill


2 Answers

Try rlwrap. It should work with any version of python and in general any shell.

Install via brew install rlwrap on Mac OS X

usage as rlwrap python. It stores history as well.

like image 34
Sairam Avatar answered Sep 27 '22 18:09

Sairam


Have you tried to install the py-readline (or py25-readline for Python 2.5) port?

Also, in the snippet above, you are NOT using the MacPort python, but rather the Apple Python.

The MacPort version should be located in the /opt/local directory structure. You should check your path.

like image 109
tegbains Avatar answered Sep 27 '22 18:09

tegbains