Idle-python2.7 的套件錯誤?

Idle-python2.7 的套件錯誤?

我在 Ubuntu 13.10 中運行 python 2.7,並且空閒 (idle-python2.7) 已停止工作。每當我嘗試在編輯器視窗中開啟文件時,它都是空白的,儘管該文件確實存在並且不為空/空白。此外,此後無法關閉空閒,除非透過終端終止命令。

  • Idle 以前工作得很好。這個問題是在我安裝了很多東西後出現的,包括idlex、各種scipy模組和mpmath,但在嘗試了多種方法修復後,似乎是由Ubuntu官方的idle包引起的。

嘗試在空閒狀態下開啟檔案時,我在終端機中收到此錯誤:

Exception in Tkinter callback
[...lines ommitted for brevity...]
File "/usr/lib/python2.7/idlelib/IOBinding.py", line 129, in coding_spec
    for line in lst:
NameError: global name 'lst' is not defined

如果你看一下程式碼,它看起來像是一個明顯的錯誤:確實lst沒有在函數中定義coding_spec。此外,來源檔案IOBinding.py位於http://fossies.org/dox/Python-2.7.5/IOBinding_8py_source.html是不同的,並沒有顯示出問題。

考慮到最近的一個軟體包以某種方式覆蓋了該文件,我嘗試了很多方法,包括從 synaptic 重新安裝所有 Python 軟體包,但錯誤的 IOBinding.py 仍然存在。我認為問題出在包本身的原因是我最終做到了sudo apt-get remove idle,並驗證了空閒庫目錄為空,並使用sudo apt-get install idle;重新安裝但錯誤的IOBinding.py檔又回來了。

事實上,我可以透過簡單地在程式碼中替換lst為來再次進行空閒工作str,但對我來說,這顯然是一個禁忌。我對嘗試僅替換來源 python 發行版中的該文件也不滿意,因為其他文件可能是錯誤的。我想從官方包中獲取正確的文件。

答案1

這是“我也是”,沒有解決方案。

……直到我搜尋特定的錯誤。

編輯文件

/usr/lib/python2.7/idlelib/IOBinding.py

並替換coding_spec函數中的這一行:

str = str.split("\n", 2)[:2]

和:

lst = str.split("\n", 2)[:2]

http://ubuntuforums.org/showthread.php?t=2182753

相關內容