
Wenn ich Python in einem neuen 14.04 LTS-Gnome-Terminal starte, ist es 80 Zeichen breit:
$ python
>>> import os
>>> os.popen('stty size', 'r').read()
'24 80\n'
Wenn ich die Größe des Gnome-Terminals ändere, wird die neue Größe gemeldet:
>>> os.popen('stty size', 'r').read()
'23 170\n'
Die Python-Eingabeaufforderung erkennt die Größenänderung jedoch nicht und beginnt, den Zeilenanfang zu überschreiben, wenn ich lange Zeilen schreibe:
nm> 1234567890qwertyuiopåasdfghjklæøzxcvbnm1234567890qwertyuiopåasdfghjklæøzxcvb
Hier wird „nm“ umbrochen.
Ein Reset über das Menü des Gnome-Terminals hilft nicht. Gibt es eine Möglichkeit, dem Python-Interpreter mitzuteilen, dass die Fenstergröße geändert wird?
Antwort1
Dies ist ein Fehler in Python, der seit der Veröffentlichung von Readline Version 6.3 aufgetreten ist. Ubuntu 14.04 hat Libreadline6 Version 6.3-4ubuntu2, daher sind 14.04 und alle späteren Ubuntu-Versionen betroffen.
Der Fehler wurde in Python behoben, aber der Fix ist noch nicht in einer offiziellen Version enthalten. Siehe den Upstream-FehlerberichtHier.
Zum Zeitpunkt des Schreibens dieses Artikels sind die neuesten Versionen 2.7.11 und 3.5.1, die nächsten Versionen 2.7.12, 3.5.2 und 3.6.0 sollten also behoben sein.