Ошибка сегментации Python: 11 на OSX

Я начал разработку с помощью python и пробовал некоторые простые команды, такие как вычисления.

Но несколько раз python прерывается с "Ошибка сегментации: 11". В google я не нашел аналогичную проблему или решение для этого.

Python установлен с доморощенным. команда home-brew doctor не показывает никаких проблем для установки python и обновляется.

У кого-нибудь есть идея, как это исправить?

Вот журнал сбоев OSX: http://pastebin.com/rKpPJKxJ

Ответы

Ответ 1

Хммм... распространилось слово. Кажется, что это исправлено:

cd /Library/Frameworks/Python.framework/Versions/3.3 
cd ./lib/python3.3/lib-dynload 
sudo mv readline.so readline.so.disabled 

Ответ 2

Это ошибка в интерпретаторе python, связанная с совместимостью с readline, которая была исправлена в последних кандидатах, которые были разрезаны в эти выходные.

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

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

Проблема, цитируемая от Нед Дейли, запись в списке электронной почты python-dev:

Во вторник Apple выпустила OS X 10.9 (он же Mavericks). Его уже много интересовали, отчасти потому, что Apple сделала его доступным бесплатно и упростила пользователям с 10,8, 10,7 и (большинством) 10,6 систем, чтобы перейти на 10,9. К сожалению, есть проблемы с нашими текущими версиями технического обслуживания (3.3.2 и 2.7.5) на OS X 10.9, которые в кратчайшие сроки требуют новых обновлений технического обслуживания.

Один из них имеет решающее значение в том, что он вызывает сбой интерпретатора при работе в интерактивном режиме (http://bugs.python.org/issue18458). Проблема возникла из-за давней проблемы совместимости в слое совместимости readed readline, который, наконец, был исправлен, и Apple теперь отправлена в 10.9. Поскольку установщики python.org динамически ссылаются на libedit, исходное обходное решение в readline.c для первоначального дефекта дизайна при индексировании истории теперь вызывает segfault на 10.9, когда пользователь вводит вторую команду в интерактивном режиме. Нехорошо. Рональд разработал исправление, позволяющее readline.so во время выполнения обнаруживать и работать с любой версией libedit, чтобы мы продолжали иметь двоичную совместимость для нескольких выпусков OS X. Это исправление уже выпущено в альфа-версии 3.4.0 и передано в ветки 3.3 и 2.7, ожидающие выхода там. Всего за последние 12 часов было зарегистрировано по меньшей мере четыре дубликата проблемы, о которых сообщают пользователи. Я обновил исходную проблему, чтобы явно указать 10.9, теперь, когда она больше не находится под NDA, и предоставить загружаемый скрипт для неопытных пользователей, чтобы решить проблему путем "удаления" readline.so. Предположительно, по мере того, как слово выходит, будет выпущено меньше дублирующих вопросов, но влияние останется.

Ответ 3

Есть ли причина, по которой вы не просто использовали официальную версию, которая тщательно протестирована с помощью встроенного набора тестов перед выпуском?

См. Http://www.python.org/download/releases/2.7.5/ или http://www.python.org/download/releases/3.3.2/ и загрузите соответствующий dmg. Если у вас все еще есть проблемы с официальной версией, вы, вероятно, либо делаете что-то очень плохое (переполнение стека или повреждение памяти с использованием чего-то типа ctypes), у вас есть проблемы с оборудованием, либо у вас есть коррумпированное программное обеспечение в вашей системе.

Ответ 4

Я ударил эту проблему на El Capitan, когда я установил Homebrew, и мне пришлось настроить свою переменную PATH, чтобы поставить /usr/local/bin спереди. Версия Python там была 2.7.3. Python в /usr/bin равен 2.7.10. Удаление символьной ссылки python в /usr/local/bin/ сделало трюк.