Question

Lors du démarrage d'une application Django avec le shell python manage.py , je reçois un shell InteractiveConsole. Je peux utiliser la complétion par des tabulations, etc.

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)

Lorsque vous lancez un interpréteur python avec python , il n'offre pas la complétion par tabulation.

Quelqu'un peut-il me dire ce que fait Django pour me fournir une console interactive ou ce que je dois faire pour démarrer une console interactive sans application Django?

Était-ce utile?

La solution

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

Cela semble fonctionner.

Autres conseils

Je pense que Django fait quelque chose comme https://docs.python.org/library/rlcompleter. html

Si vous voulez un très bon interprète interactif, jetez un œil à http://ipython.scipy.org/ .

Pour mémoire, cela est couvert dans le tutoriel: http://docs.python.org /tutorial/interactive.html

J'utilise ptpython. https://github.com/jonathanslenders/ptpython/

ptpython est un outil merveilleux, l'auto-complétion shell cmd. installer ptpython est très facile, utilisez l'outil pip

  

pip installer ptpython

et pour le shell Django, vous devez importer l'enveloppe Django, comme ceci

  

importer os

     

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

Croyez-moi, c’est le meilleur moyen de vous rendre visite !!!

On dirait que python3 a sa boîte d'origine!

En Python3, cette fonctionnalité est activée par défaut. Le système readline n'est pas installé sur mon système. Je suis sur Manjaro. Je n’étais pas confronté à ce problème de complétion d’onglet sur d’autres distributions Linux (élémentaire, ubuntu, menthe).

Après que pip ait installé le module, lors de l'importation, l'erreur suivante était générée -

ImportError: libncursesw.so.5: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type

Pour résoudre ce problème, j'ai exécuté -

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

Ceci a résolu l'erreur d'importation. Et, cela a également amené la complétion des tabulations dans la réplique python sans aucune création / modification de .pythonrc ni de .bashrc .

Je crée un .pythonrc.py plus parfait, vous pouvez trouver cela utile:

correctif pour le shell Windows10:

  • pip installer pyreadline
  • pip installer ipython [shell]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top