Подтвердить что ты не робот

Ошибка сегментации: 11 в OS X

Я получаю проблему в Python 3.3.2 на OSX 10.9, где, если я открою Python в окне терминала, он выйдет с "Ошибка сегментации: 11" после второй строки, которую я вводил, независимо от того, что представляют собой две команды. Например, если я введу:

>>> for x in range(1000): print(x)

работает нормально, но если я введу:

>>> for x in range(1000):
...     print(x)

то я получаю ошибку, когда я нажимаю кнопку ввода во второй строке. Я также могу запустить script с более чем двумя строками без проблем.

Я сегодня обновился до OSX 10.9, поэтому я подозреваю, что это возможно.

Однако, я недавно установил IPython (наряду с несколькими другими пакетами) и использовал это последние пару дней, так что это может быть что-то еще, что я установил недавно. У меня была пара неудачных попыток установить PyQt, где я запустил configure.py, но затем сработала команда "make", о которой я также подозревал.

Я попытался переустановить Python, но это не решило проблему. И IPython, и IDLE работают без проблем. Меня просто беспокоит то, что может быть основной проблемой.

Любая помощь приветствуется, спасибо заранее.

4b9b3361

Ответ 1

Это ошибка совместимости readline в python, связанная с изменениями, внесенными в OSX10.9. В эти выходные были выпущены кандидаты на Python2.7.6 и Python3.3.3, которые исправили эту ошибку. Ссылки для скачивания ниже.

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

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

Здесь проблема, цитируемая из Ned Deily, написана в списке писем python-dev.

Во вторник Apple выпустила OS X 10.9 (a.k.a. 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). Проблема была вызвана давняя проблема совместимости в слое совместимости с readline libedit что восходящий поток наконец-то был исправлен, и Apple теперь отправлена ​​в 10.9. Потому как инсталляторы python.org динамически ссылаются на libedit, оригинальное обходное решение в readline.c для первоначального дефекта дизайна при индексировании истории теперь вызывает segfault на 10.9, когда пользователь вводит вторую команду в интерактивном режиме. Не хорошо. Рональд разработал исправление, позволяющее readline.so во время выполнения обнаруживать и работайте с любой версией libedit, чтобы мы продолжали иметь двоичный файл совместимость для нескольких выпусков OS X. Это исправление уже вышло в 3.4.0 альфа и backported в ветки 3.3 и 2.7, ожидающие выхода там. Всего за последние 12 часов было по крайней мере четыре дубликата проблема, о которой сообщают пользователи. Я обновил исходную проблему до явно упомянуть 10.9, теперь, когда он больше не находится под NDA, и предоставить загружаемый script для неопытных пользователей, чтобы обход проблемы "удаление" readline.so. Предположительно, когда слово выйдет, будет меньше повторяющиеся проблемы открываются, но влияние остается.

Ответ 2

У меня была эта проблема после обновления до OS X 10.9 и использовалась исправление, представленное на веб-сайте Python: http://bugs.python.org/issue18458#msg201087

Чтобы использовать его, откройте сеанс терминала в Terminal.app(или другой оболочке), затем введите:

curl -O http://bugs.python.org/file32324/patch_readline_issue_18458.sh
openssl sha1 patch_readline_issue_18458.sh
# the digest should be 7cb0ff57820a027dd4ca242eb2418930f8f46b4c

то
  sh ./patch_readline_issue_18458.sh

Введите свой пароль, если будет предложено

Ответ 3

У меня была эта проблема. Изменение chunksize в моем парсере csv на 100 устраняет ошибку.

Ответ 4

Я столкнулся с подобными ошибками "ошибки сегментации 11", но для меня он использовал ртутный (hg)

Это пыталось использовать Python 2.7.8, установленный с помощью установщика .mpkg, и pip install mercurial На OS X 10.9.5

Я думал, что обновление до 2.7.8 разрешило бы это, но казалось, что mercurial все еще ищет System/Library/Frameworks/Python.framework/Versions/2.7

Даже после попытки следовать этому слегка неразумным советам Все еще не работало. Я бы запустил

hg init
hg add *
hg commit -m ...
hg status

получит "segmentation fault 11"

Первые две строки трассировки стека указывают на это:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   ???                             000000000000000000 0 + 0
1   osutil.so                       0x00000001095ef768 listdir + 313
2   org.python.python               0x0000000109261b35 PyEval_EvalFrameEx + 14712
3   org.python.python               0x000000010925e093 PyEval_EvalCodeEx + 1641

В конце концов, мое решение, похоже, произошло из (re) установки python с homebrew, используя это, чтобы получить выпуск 2.7.8 (как от декабря 2014 года)

Затем я переустановил mercurial с помощью brew install mercurial, который, похоже, разрешил любые зависимости, вызывающие это. Мне жаль, что я лучше не понял, что происходит с вилкой Seg, но не смог добраться до нее.

Самое лучшее, что у меня есть, это то, что mercurial все еще ссылался на системный python, несмотря на то, что 2.7.8 установлено правильно, а usr/local/bin - первым в пути

/USR/локальные/бен: USR/локальные/ git/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin: ~/Разработка:/usr/local/git/bin: нет такого файла или каталога

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