2008-10-29 6 views
83

Lors du démarrage d'une application à l'aide django python manage.py shell, je reçois une coquille InteractiveConsole - je peux utiliser la complétion, etc.Comment ajouter une tabulation à l'interpréteur Python?

Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
(InteractiveConsole) 

Si vous débutez un interpréteur Python en utilisant python, il ne propose pas la complétion. Est-ce que quelqu'un peut me dire ce que django fait pour me donner une console interactive, ou ce que je dois faire pour démarrer une console interactive sans une application django?

+0

Lorsque vous tapez en python, vous obtenez une invite >>>, n'est-ce pas? C'est le shell interactif. Quelle est votre question? –

+3

Il n'offre pas de complétion d'onglet. C'est le problème. – ashchristopher

+0

Veuillez mettre à jour votre question pour le spécifier. –

Répondre

144

J'ai peut-être trouvé un moyen de le faire.

Créer un fichier .pythonrc

# ~/.pythonrc 
# enable syntax completion 
try: 
    import readline 
except ImportError: 
    print("Module readline not available.") 
else: 
    import rlcompleter 
    readline.parse_and_bind("tab: complete") 

puis dans votre fichier .bashrc, ajoutez

export PYTHONSTARTUP=~/.pythonrc 

qui semble fonctionner.

+2

cela fonctionne pour Jython où IPython et bpython ne sont pas actuellement disponibles. –

+1

Pour une raison quelconque, ce qui précède a fonctionné pour moi dans mon ancien mac avec "lion de montagne", mais ne travaille pas pour le nouveau mac avec "el captan". J'ai besoin de '' source ~/.bashrc'' à chaque fois pour le faire fonctionner avant de lancer l'interpréteur python. Des conseils? – hmi

+1

@hmi Essayez d'unifier vos '.bashrc' et' .bash_profile' comme suggéré au bas de cette page: http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html Il fournit également des informations sur la différence entre eux. Cela pourrait ne pas résoudre le problème, mais cela pourrait aider. – Dangercrow

6

J'utilise ptpython. Ptpython est un outil merveilleux autocomplete shell cmd. installer ptpython est très facile, utiliser l'outil pip

Pip installer ptpython

et pour le shell django, vous devez importer le django env, comme celui-ci

import os

os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "testweb.settings")

Faites-moi confiance, c'est la meilleure façon de vous !!!

+0

Très utile. Merci Alan – python

3

On dirait que python3 l'a out of box!

0

En Python3, cette fonctionnalité est activée par défaut. Mon système n'a pas installé le module readline. Je suis sur Manjaro. Je n'ai pas fait face à ce problème d'achèvement d'onglet sur d'autres distributions Linux (élémentaire, Ubuntu, Mint).

Après pip l'installation du module, lors de l'importation, il a été jeté la ERROR- suivante

ImportError: libncursesw.so.5: cannot open shared object file: No such file or directory

Pour résoudre ce problème, je ran-

cd /usr/lib ln -s libncursesw.so libncursesw.so.5

Cette résolu l'erreur d'importation . Et, il a également apporté l'achèvement de l'onglet dans le replier python sans aucune création/changements de .pythonrc et .bashrc.

Questions connexes