Как сбросить ширину терминала интерпретатора Python?

Как сбросить ширину терминала интерпретатора Python?

Когда я запускаю 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 должны быть исправлены.

Связанный контент