2013-10-23 93 views
61

我在OSX 10.9的Python 3.3.2中遇到了一個問題,如果我在終端窗口中打開Python,它會在我輸入的第二行後面出現「Segmentation error:11」這兩個命令是什麼。例如,如果我輸入:分割錯誤:在OS X中爲11

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

工作正常,但如果我輸入:

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

然後我得到的錯誤,當我按第二行進入。我還可以運行超過2行的腳本,沒有任何問題。

今天下午我更新了OSX 10.9,所以我懷疑可能是這樣。

但是,我最近安裝了IPython(以及其他幾個軟件包),並且在過去的幾天裏一直在使用它,所以它可能是我最近安裝的其他軟件。我有幾次嘗試在安裝PyQt的地方嘗試configure.py,但後來「make」命令失敗,我也很懷疑。

我試過重新安裝Python,但沒有解決問題。 IPython和IDLE都沒有問題。我只關心什麼是潛在的問題。

任何幫助表示讚賞,在此先感謝。

+0

你可以在python實例上運行gdb嗎? –

+3

似乎其他人都有同樣的問題:http://stackoverflow.com/questions/18158381/python-crash-when-running-two-commands雖然關閉了問題,但第4條評論下來可能會解決您的問題 – samrap

+0

謝謝,這很有幫助!這裏似乎有一個現有的報告:http://bugs.python.org/issue18458被列爲固定。它有一個補丁列出,但我不知道如何使用它。 – IncongruentModulo1

回答

48

這是Python中readline兼容性中的一個錯誤,與OSX10.9中引入的更改有關。本週末,發佈了針對Python2.7.6和Python3.3.3的發佈候選版本,以修復此錯誤。下載鏈接如下。

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

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

這裏的問題,從斯內德Deily報價,在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.

+0

我安裝了2.7.6,錯誤依然存在。我想做別的事嗎?即改變PYTHONPATH? – venuktan

+0

您應該確保所有內容都引用了新的安裝。如果您的PYTHONPATH或DYLD_LIBRARY_PATH引用舊安裝,則會出現我所假設的錯誤。 –

+0

是的,我現在完成了該部分,並使用Python 2.7.6rc1。當我嘗試pandas.read_csv並打印它時,它崩潰。不會在其他地方崩潰。 – venuktan

34

我升級到OS X 10.9以後有這個問題,使用提供了Python網站上的補丁:http://bugs.python.org/issue18458#msg201087

要使用它,打開Terminal.app終端會話(或其他shell)然後輸入:

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

輸入您的密碼,如果提示

+0

+1作品 – wim

+0

+1好!有用! –

+1

+1你救了我的傍晚! – br3w5

1

我遇到類似的「分段錯誤11」錯誤,但對我來說,用水銀(汞)

這是試圖使用Python 2.7.8通過的.mpkg安裝程序安裝和PIP安裝善變 在OS X 10.9.5

我以爲更新到2.7.8就已經解決了這一點,但它似乎是善變仍在尋找系統/庫/框架/ Python.framework /版本/ 2.7

即使經過試圖關注這個slightly unwise advice事情仍然沒有奏效。我會跑

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

會得到「分段錯誤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 

在結束我的解決方案似乎已經從(重新)安裝蟒蛇與homebrew使用,以獲得2.7.8版本(截至2014年12月)

然後我重新安裝mercurial與brew安裝mercuri這似乎解決了造成這種情況的任何依賴關係。我希望我能更好地理解Seg錯誤發生的情況,但無法深入到底。

最合理的猜測我還有的是善變的仍參照系統蟒蛇儘管2.7.8被正確安裝和USR/local/bin目錄是先在路徑

在/ usr/local/bin目錄: USR /本地/ git的/ bin中:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:在/ usr/bin中:/ bin中:/ usr/sbin目錄:/ usr/local/bin:〜/ Develop:/ usr/local/git/bin:沒有這樣的文件或目錄

因此,我建議使用brew更新python安裝,然後重新安裝你依賴的任何其他軟件包。

+0

由python.org安裝的mpkg版本以Python 2.7 .8(v2.7.8:ee879c0ffa11,2014年6月29日,21:07:35) [GCC 4.2.1(Apple Inc. build 5666)(dot 3)]在darwin'上,並且brew安裝的版本是Python 2.7 .8(default,2014年12月4日,01:08:07) [GCC 4.2.1 Compatible Apple LLVM 6.0(clang-600.0.56)] darwin' –

2

我有這個問題。將我的csv解析器中的chunksize更改爲100可消除此錯誤。

+1

這對我來說也適用於10.9.5以及python 2.7 0.8 – zap2008