Como faço para redefinir a largura do terminal do interpretador Python?

Como faço para redefinir a largura do terminal do interpretador Python?

Quando inicio o python em um novo terminal gnome 14.04 LTS, ele tem 80 caracteres de largura:

$ python
>>> import os
>>> os.popen('stty size', 'r').read()
'24 80\n'

Quando redimensiono o gnome-terminal, o novo tamanho é relatado:

>>> os.popen('stty size', 'r').read()
'23 170\n'

No entanto, o prompt de entrada python não vê o redimensionamento e começa a sobrescrever o início da linha quando escrevo linhas longas:

nm> 1234567890qwertyuiopåasdfghjklæøzxcvbnm1234567890qwertyuiopåasdfghjklæøzxcvb

Aqui 'nm' está embrulhado.

Uma redefinição no menu do terminal gnome não ajuda. Existe uma maneira de informar ao interpretador python que a janela foi redimensionada?

Responder1

Este é um bug no Python que apareceu desde o lançamento da versão 6.3 do readline. Ubuntu 14.04 tem libreadline6 versão 6.3-4ubuntu2, então 14.04 e todas as versões posteriores do Ubuntu são afetadas.

O bug foi corrigido no Python, mas a correção ainda não está em nenhum lançamento oficial. Consulte o relatório de bug upstreamaqui.

As versões mais recentes no momento da redação deste artigo são 2.7.11 e 3.5.1, portanto, as próximas versões 2.7.12, 3.5.2 e 3.6.0 devem ser corrigidas.

informação relacionada