Falsches Paket für Idle-python2.7?

Falsches Paket für Idle-python2.7?

Ich verwende Python 2.7 unter Ubuntu 13.10 und Idle (idle-python2.7) funktioniert nicht mehr. Immer wenn ich versuche, eine Datei in einem Editorfenster zu öffnen, ist sie leer, obwohl die Datei existiert und nicht leer/leer ist. Darüber hinaus ist es nicht möglich, Idle danach zu schließen, außer über einen Terminal-Kill-Befehl.

  • Idle hat vorher einwandfrei funktioniert. Das Problem trat auf, nachdem ich eine Reihe von Dingen installiert hatte, darunter Idlex, verschiedene Scipy-Module und MPmath. Nach mehreren Reparaturversuchen schien es jedoch am offiziellen Idle-Paket von Ubuntu zu liegen.

Beim Versuch, im Leerlauf eine Datei zu öffnen, wird mir im Terminal folgende Fehlermeldung angezeigt:

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

Wenn Sie sich den Code ansehen, sieht es nach einem offensichtlichen Fehler aus: in der Tat lstist in der Funktion nicht definiert coding_spec. Darüber hinaus ist die Quelldatei IOBinding.py inhttp://fossies.org/dox/Python-2.7.5/IOBinding_8py_source.htmlist anders und zeigt das Problem nicht.

Da ich dachte, dass eines der letzten Pakete die Datei irgendwie überschrieben hat, habe ich eine Reihe von Dingen versucht, einschließlich der Neuinstallation aller Python-Pakete von Synaptic, aber die falsche IOBinding.py ist immer noch da. Der Grund, warum ich denke, dass das Problem beim Paket selbst liegt, ist, dass ich endlich sudo apt-get remove idleüberprüft habe, dass die_leerlibVerzeichnis war leer und wurde mit neu installiert sudo apt-get install idle; aber die falsche IOBinding.py-Datei kam wieder zurück.

Ich kann in der Tat dafür sorgen, dass Idle wieder funktioniert, indem ich im Code einfach „ lstby“ ersetze str, aber das ist für mich eindeutig ein No-Go. Ich bin auch nicht sehr glücklich darüber, nur diese Datei aus der Python-Quelldistribution zu ersetzen, da andere Dateien falsch sein könnten. Ich möchte die richtigen Dateien aus dem offiziellen Paket erhalten.

Antwort1

Es ist ein „Ich auch“, ohne Lösung.

...bis ich nach dem spezifischen Fehler gesucht habe.

Bearbeiten der Datei

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

und ersetzen Sie diese Zeile in der Funktion coding_spec:

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

mit:

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

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

verwandte Informationen