Como posso concluir a tabulação no interpretador interativo Python?

14

Costumo usar o intérprete interativo do Python 3000, mas falta a conveniência da conclusão de guias que estou acostumada no ipython, que não está disponível para o Python 3.x.

Como habilito o preenchimento de guias em todos eles, 2.6 e 3.x?

Stefano Palazzo
fonte

Respostas:

17

Primeiro, crie um novo arquivo chamado .pythonstartup.pyem seu diretório pessoal. Coloque o seguinte script nele:

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

Os parênteses em torno da string garantem que ele funcione com o Python 2 e o Python 3.

Sempre que o intérprete interativo é iniciado, ele executa um script definido em $PYTHONSTARTUP, se houver um. Para configurá-lo para executar o script acima, digite

export PYTHONSTARTUP="~/.pythonstartup.py"

Você deve gravar esta linha no seu arquivo .bashrcou.bash_profile , para que seja executada automaticamente quando um novo shell for iniciado.

Stefano Palazzo
fonte
6
AVISO: Isso não funcionará se você iniciar o terminal e depois alterar o diretório. Se você quiser este método para não trabalhar importa o diretório que você é, você deve usar o caminho completo comoexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos
1
Você pode tornar a exportação um pouco mais tolerante com a exportaçãoPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling
Isso não funciona se você iniciar um arquivo no modo interativo, por exemplo python -i main.py. Alguma maneira de fazer isso?
Chris Anderson