2009-11-18 4 views
2

J'utilise l'invite python pour pratiquer certaines expressions régulières. Je me demandais s'il y avait un moyen d'utiliser les flèches haut/bas (comme bash) pour parcourir les anciennes commandes tapées. Je sais que c'est possible car cela fonctionne sur python sur cynwin/windows. merciInvite python avec une interface de type bash

+0

sur quelle plateforme? –

+0

Oui sur quelle plateforme? La plupart des Linux construisent Python avec un support readline, mais Mac OS X ne le fait pas (ou pas) par défaut. Il existe des moyens spécifiques à la plate-forme autour de cela si vous ne voulez pas compiler, et aucune des réponses utiles ci-dessous ne vous aide. – quark

Répondre

7

Utilisez le module rlcompleter pour obtenir à la fois la readline et l'achèvement.

Exemple de code PYTHONSTARTUP:

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

Exemple de code .bashrc pour définir votre fichier de démarrage python:

if [ -f ~/.pythonstartup.py ] 
then 
    export PYTHONSTARTUP=~/.pythonstartup.py 
fi 
+0

Merci! Cela fonctionne dans mon installation python existante sans avoir à installer ipython ou compiler python avec le support de readline comme mentionné dans les autres réponses. – Amjith

+0

Ceci est une information très cool. – jathanism

6

Si vous compilez python avec le soutien readline, l'environnement REPL devrait le faire pour vous.

6

En plus de la compilation avec readline activé comme suggéré dans une autre réponse, vous pouvez également utiliser rlrwrap pour ajouter readline à l'exécution, même s'il n'a pas été respecté; comme si:

rlwrap python 
+1

Nice! Cela est assez utile pour que je vous ai fait deux fois plus de promesses si je pouvais :). – quark

+0

Je l'ai fait pour vous :) a marqué ce rebondir à nouveau. – Pradyot

Questions connexes