
Когда я запускаю Python в новом gnome-terminal 14.04 LTS, он имеет ширину 80 символов:
$ python
>>> import os
>>> os.popen('stty size', 'r').read()
'24 80\n'
При изменении размера gnome-terminal сообщается о новом размере:
>>> os.popen('stty size', 'r').read()
'23 170\n'
Однако приглашение ввода Python не видит изменения размера и начинает перезаписывать начало строки, когда я пишу длинные строки:
nm> 1234567890qwertyuiopåasdfghjklæøzxcvbnm1234567890qwertyuiopåasdfghjklæøzxcvb
Здесь «нм» заключено в обертку.
Сброс из меню gnome-terminal не помогает. Есть ли способ сообщить интерпретатору python, что размер окна изменен?
решение1
Это ошибка в Python, которая появилась после выхода readline версии 6.3. Ubuntu 14.04 имеет libreadline6 версии 6.3-4ubuntu2, поэтому 14.04 и все более поздние выпуски Ubuntu затронуты.
Ошибка была исправлена в Python, но исправление еще не было ни в одном официальном релизе. Обратитесь к отчету об ошибке в upstreamздесь.
Последними версиями на момент написания статьи являются 2.7.11 и 3.5.1, поэтому в следующих версиях 2.7.12, 3.5.2 и 3.6.0 должны быть исправлены.