Comment puis-je obtenir la tabulation dans l'interpréteur interactif Python?

14

J'utilise souvent l'interpréteur interactif de Python 3000, mais il manque la commodité de la tabulation à laquelle je suis habitué depuis ipython, qui n'est pas disponible pour Python 3.x.

Comment puis-je activer la complétion des onglets dans chacun d'eux, 2.6 et 3.x?

Stefano Palazzo
la source

Réponses:

17

Créez d'abord un nouveau fichier appelé .pythonstartup.pydans votre répertoire personnel. Mettez-y le script suivant:

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

Les parenthèses autour de la chaîne garantissent qu'elle fonctionne avec Python 2 et Python 3.

Chaque fois que l'interpréteur interactif est démarré, il exécute un script défini dans $PYTHONSTARTUP, s'il y en a un. Pour le configurer pour exécuter le script ci-dessus, tapez

export PYTHONSTARTUP="~/.pythonstartup.py"

Vous devez écrire cette ligne dans votre fichier .bashrcou.bash_profile , afin qu'elle soit automatiquement exécutée lors du démarrage d'un nouveau shell.

Stefano Palazzo
la source
6
AVIS: cela ne fonctionnera pas si vous démarrez le terminal puis changez de répertoire. Si vous voulez que cette méthode fonctionne quel que soit le répertoire dans export PYTHONSTARTUP="/home/user/.pythonstartup.py"
lequel
1
Vous pouvez rendre l'exportation un peu plus tolérante en exportantPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling
Cela ne fonctionne pas si vous démarrez un fichier en mode interactif, par exemple python -i main.py. Une façon de faire ça?
Chris Anderson