Questão 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:

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

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

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

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

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

Aqui 'nm' está embrulhado.

Um reset do menu do gnome-terminal não ajuda. Existe uma maneira de informar o interpretador python que a janela é redimensionada?


1
2018-04-15 16:08


origem


O IPython ou o python3 sofrem com isso? - muru
Sim. Ipython e python3 também têm o problema. - Finn Årup Nielsen


Respostas:


Este é um bug no Python que apareceu desde readline versão 6.3 foi lançado. O 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 em Python, mas a correção ainda não está em nenhum lançamento oficial. Consulte o relatório de bug do upstream Aqui.

Os últimos lançamentos da época em que escrevo são 2.7.11 e 3.5.1, então as próximas versões 2.7.12, 3.5.2 e 3.6.0 devem ser corrigidas.


2
2018-04-15 18:09