Comment puis-je ajouter la complétion de tabulation au shell Python?
-
05-07-2019 - |
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?
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]