Python interactive segfaults on OS X 10.9 Mavericks


Ned Deily

Since OS X 10.9 Mavericks is now out, people are running into a severe problem
when using some Python interpreters interactively. The symptom is that the
interpreter in interactive mode crashes after typing two lines:

$ python3.3
Python 3.3.2 (v3.3.2:d047928ae3f6, May 13 2013, 13:52:24)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.Segmentation fault: 11

It does not matter what is entered on the two lines; the interpreter crashes
after the second line. The problem is caused by an upstream change in the OS
X 10.9 editline library, libedit. Most recent versions of the
installers dynamically link to the system-provided libedit and are susceptible
to the problem. These include Pythons from the following current installers:

3.3.2 64-bit/32-bit 10.6+
3.3.2 32-bit-only 10.5+
2.7.5 64-bit/32-bit 10.6+

Older releases of similar installers are also susceptible. 2.7.x Pythons from
the 32-bit-only installers are not susceptible because they do not use
libedit. Pythons using GNU readline, including those with the PyPI readline
distribution installed should not have problems. Also, the Apple-supplied
system Pythons (2.7.x, 2.6,x, and 2.5.x) shipped with OS X 10.9 do not exhibit
the crash. The problem is described in Issue18458. It describes a
workaround: disabling the readline extension by renaming or deleting it. It
also provides a script that can be downloaded to automate this "patching".

The fix for the problem has been released in the current 3.4.0a4 installers.
It will be available in the installers for Python 3.3.3 and 2.7.6, which are
expected to be released in the near future. Release candidate installers for
both should be available by Monday.

Otherwise, for the most part, the transition to OS X 10.9 appears to be
relatively problem-free so far. Please open issues on the Python bug tracker
for any new problems you encounter (after doing a quick search to see if it
has already been reported!).


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question