Python Interpreter – Segmentation Fault :11 on OSX

This is one issue which I was facing on Mac OSX Mavericks 10.9.4. When you open the python interpreter in the terminal, executing two lines of code one after the other will give you an segmentation fault: 11 and the python interpreter closes.

For instance: >>> print ‘Hello’ gives you the output as Hello

Later, if you type in one more line of code say >>> print ‘World’

The interpreter exists with an segmentation fault : 11 though there is nothing wrong with the code.

This was issue for both Python 2.7.6 version and Python 3.3.3

Solution:

This is a bug in the readline compatibility in python, related to changes introduced in OSX10.9. This weekend, release candidates for Python2.7.6 and Python3.3.3 were released which fix this bug. The download links are below.

http://python.org/download/releases/2.7.6/

http://python.org/download/releases/3.3.3/

Here’s the issue, quoting from Ned Deily, writing on the python-dev email list.

On Tuesday, Apple released OS X 10.9 (a.k.a. Mavericks). There has already been a lot of interest in it, in part because Apple has made it available for free and has made it easy for users with 10.8, 10.7, and (most) 10.6 systems to upgrade directly to 10.9. Unfortunately, there are issues with our current maintenance releases (3.3.2 and 2.7.5) on OS X 10.9 that call for new maintenance releases as soon as possible.

One is critical in that it causes the interpreter to crash when running in interactive mode (http://bugs.python.org/issue18458). The problem was due to a long-standing compatibility issue in libedit’s readline compatibility layer that upstream has finally fixed and Apple has now shipped in 10.9. Because the python.org installers dynamically link to libedit, the original workaround in readline.c for the original design flaw in history indexing now causes a segfault on 10.9 when the user types in the second command interactively. Not good. Ronald devised a fix that allows readline.so at runtime to detect and work with either version of libedit so that we continue to have binary compatibility across multiple OS X releases. That fix is already out in the 3.4.0 alphas and backported to the 3.3 and 2.7 branches, awaiting release there. Just in the last 12 hours, there have been at least four duplicates of the issue reported by users. I’ve updated the original issue to explicitly mention 10.9, now that it is no longer under NDA, and to provide a downloadable script for inexperienced users to workaround the problem by “removing” readline.so. Presumably, as word gets out, there will be fewer duplicate issues opened but the impact will remain.

Downloading the required version from the above given links and installing python fixes this problem.

 

Cheers,

SZ

One comment

  1. I ran into this problem yesterday with python3.4 and mavericks out of the blue running code that had run fine not a moment earlier, so I decided to finally bite the bullet and upgrade to yosemite, and am still having the same issue: Segmentation fault: 11.

    I’m running a pb i7 w/ 8gb, python3.4.1, pandas0.15 and lxml to chunder through some xml, and any assistance would be appreciated… Many thanks in advance… -tripp

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s