Wie setze ich die Terminalbreite des Python-Interpreters zurück?

Wie setze ich die Terminalbreite des Python-Interpreters zurück?

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.

verwandte Informationen