Come posso ottenere il completamento con tabulazione nell'interprete Python interattivo?


14

Uso spesso l'interprete interattivo di Python 3000, ma manca la comodità del completamento delle schede a cui sono abituato da ipython, che non è disponibile per Python 3.x.

Come abilito il completamento della scheda in tutti, 2.6 e 3.x?

Risposte:


17

Innanzitutto, crea un nuovo file chiamato .pythonstartup.pynella tua home directory. Inserisci il seguente script in esso:

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

Le parentesi attorno alla stringa assicurano che funzioni sia con Python 2 che con Python 3.

Ad ogni avvio dell'interprete interattivo, esegue uno script definito in $PYTHONSTARTUP, se presente. Per impostarlo per eseguire lo script sopra, digitare

export PYTHONSTARTUP="~/.pythonstartup.py"

Dovresti scrivere questa riga nel tuo .bashrco nel.bash_profile tuo file, in modo che venga eseguita automaticamente all'avvio di una nuova shell.


6
AVVISO: questo non funzionerà se si avvia il terminale e si cambia directory. Se si desidera che questo metodo funzioni indipendentemente dalla directory in cui ci si trova, è necessario utilizzare il percorso completo comeexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos,

1
Puoi rendere l'esportazione un po 'più tollerante avendo exportPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling,

Questo non funziona se si avvia un file in modalità interattiva, ad es python -i main.py. Come posso farlo?
Chris Anderson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.