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

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

  • Раньше холостые работали нормально. Проблема появилась после того, как я установил несколько вещей, в том числе idlex, различные модули scipy и mpmath, но после попытки исправить его несколькими способами, похоже, он вызван официальным пакетом Ubuntu для бездействия.

Я получаю эту ошибку в терминале при попытке открыть файл в режиме ожидания:

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 отличается и не показывает проблему.

Подумав, что один из недавних пакетов каким-то образом перезаписал файл, я попробовал несколько вещей, включая переустановку всех пакетов Python из synaptic, но неправильный IOBinding.py все еще там. Причина, по которой я думаю, что проблема заключается в самом пакете, заключается в том, что я наконец сделал sudo apt-get remove idle, проверил, что каталог idlelib был пуст, и переустановил с помощью sudo apt-get install idle; но неправильный файл IOBinding.py вернулся снова.

На самом деле я могу снова заставить работать без дела, просто заменив lst на str в коде, но для меня это явно нет-нет. Я также не рад попыткам заменить только этот файл из исходного дистрибутива Python, поскольку другие файлы могут быть неправильными. Я хочу получить нужные файлы из официального пакета.

2
задан 10 September 2015 в 19:15

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

0
ответ дан 10 September 2015 в 19:15

Другие вопросы по тегам:

Похожие вопросы: