Неправильный пакет для Idle-python2.7?

Неправильный пакет для Idle-python2.7?

Я использую python 2.7 в Ubuntu 13.10, и idle (idle-python2.7) перестал работать. Всякий раз, когда я пытаюсь открыть файл в окне редактора, он оказывается пустым, хотя файл существует и не является пустым/незаполненным. Более того, после этого невозможно закрыть idle, кроме как с помощью команды kill в терминале.

  • 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

Если посмотреть на код, то это выглядит как очевидная ошибка: Indeed lstне определен в функции coding_spec. Кроме того, исходный файл IOBinding.py вhttp://fossies.org/dox/Python-2.7.5/IOBinding_8py_source.htmlотличается и не показывает проблему.

Думая, что один из недавних пакетов каким-то образом перезаписал файл, я попробовал несколько вещей, включая переустановку всех пакетов Python из synaptic, но неправильный 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

Связанный контент