11
votes

Comment exécuter Django Shell d'Emacs?

J'aimerais pouvoir exécuter ./ manage.py shell dans un tampon EMACS, avec toutes les bonnes choses que vous obtenez d'Ipython, telles que des commandes magiques et une autoocompleure. Idéalement, je voudrais également pouvoir évaluer le code d'un tampon à la coquille Django.

est-ce possible?


0 commentaires

7 Réponses :


0
votes

Il ne fonctionnera pas dans shell ? J'ai réussi à obtenir une session de Django Shell dans Emacs tout à l'heure actuelle.

Hit mx shell puis démarrez votre coque Python à l'intérieur de cette session de coque Bash, comme: xxx

la coque SPAWNS xxx

et il devrait apparaître une coque Django comme si vous travaillez dans un terminal nu, mais c'est un autre tampon dans Emacs.

jusqu'à l'intégration (L'envoi de code à la coquille doit être évalué, etc.) Il semble que vous puissiez pouvoir trouver ce que vous recherchez au bas de la page ici (Wiki Emacs pour Python.el) . Il y a beaucoup d'informations là-bas sur l'utilisation de Ipython avec Python.el, et vous pourrez peut-être obtenir cela pour exécuter votre shell Django en modifiant le code ou en python.el.


0 commentaires

1
votes

en utilisant ansi-terme fera la fin de l'onglet d'Ipython Travaillez, cependant, notez que cela remappera tous CX [...] Keybindings sur CC [...] .

Si vous l'aimez, vous pouvez facilement créer Un clavier pour celui-ci en mettant cela à votre .emacs: xxx


1 commentaires

Je n'ai pas de difficulté à démarrer un tampon Ipython, je veux un coquille puck.py shell tampon. ANSI-TERME ne vous permet pas de passer des arguments au programme qu'il exécute.



8
votes

OK, alors je l'ai piraté par moi-même aujourd'hui. Une partie majeure de celle-ci est copie et pâte de py-shell à partir de python-mode.el . xxx


0 commentaires

1
votes

J'ai simplement créé un script de remplacement ipython shell.

J'utilise python-mode.el et iphon.el; Related .emacs.el fragment va comme ceci: p> xxx pré>

où Smart_IPython Script ressemble à ceci: P>

#!/bin/sh
set -e

/bin/echo -n "Select Django project/dir, or press enter for plain ipython: "

read selection
case $selection in
    '') exec ipython ;;
    project) cd /Users/japhy/Projekty/some/project/dir ;;
    # other often used projects go here
    *) cd $selection ;;
esac
exec python manage.py shell


0 commentaires

2
votes

C'est une très vieille question, mais c'est probablement toujours utile pour quelqu'un. J'ai trouvé le moyen le plus simple de ce que cela consiste à ajouter ce qui suit à mon fichier .emacs xxx

Vous pouvez ensuite utiliser l'une des commandes Python-Shell-interprète, et tout va courir dans le Django Shell au lieu de l'interprète python ordinaire.

J'ai écrit un article de blog à ce sujet ici .


0 commentaires

1
votes

Après avoir recherché cette question, je pense que la meilleure solution qui fonctionnera pour plusieurs projets Django sans modifier votre configuration chaque fois que vous échangez est python-django.el plus la configuration correcte de Directory-local variables .

Python-Django est un excellent ajout à Python.el pour les utilisateurs de Django, avec de nombreuses petites améliorations de la vie, telles que les commandes en cours d'exécution, etc.

pour le faire toujours lancer Le shell Django lors d'un projet, vous devez définir les variables locales de répertoire appropriées en créant un fichier .Dir-locaux.el dans la racine de votre projet. Vous pouvez utiliser cette configuration pour le fichier .dir-locals.el . La partie critique est la définition de votre interpréteur Python-shell args vers gérer.py shell pour votre projet. xxx

`` `"

La configuration est prise de ce blogpost par l'auteur du projet.


1 commentaires

N'ont pas remarqué votre réponse jusqu'à ce que j'ai écrit le mien. Ce mode est vraiment cool.



0
votes

C'est vieux, mais j'espère que cela aidera quelqu'un.

Le moyen le plus à jour et sans effort d'exécuter Django Développement sous EMACS consiste à utiliser le mode Django-Emacs. P>

Il peut être trouvé ici. P>

https://github.com/fgallina/python-django.el p>

Il ressemble à quelque chose comme ceci: P>

 entrez la description de l'image ici p>

lorsque vous avez installé ce mode, Vous obtenez une entrée de menu intitulée "Django" dans votre Emacs. Comme vous pouvez le constater sur la capture d'écran ci-dessus, toutes les commandes que vous pouvez imaginer dans le menu ou comme raccourcis clavier. La coquille Django est là, à côté de toutes les autres choses. p>

C'est un mode vraiment cool. P>

P.s. Je ne suis pas un développeur ni une partie intéressée lorsqu'il s'agit de ce mode. Je suis un utilisateur heureux. P>

edit: stry> p>

Il apparaît que le format de .Dir-local.el code> fichier est changé légèrement. J'utilise actuellement EMACS 25.2.2 et le format suivant fonctionne pour cette tâche P>

((python-mode . ((python-shell-interpreter . "/home/user/miniconda3/envs/xxx-web/bin/python")
         (python-shell-interpreter-args . "/var/www/sites/xxx-web/xxx/manage.py shell")
         (python-shell-prompt-regexp . "In \\[[0-9]+\\]: ")
         (python-shell-prompt-output-regexp . "Out\\[[0-9]+\\]: ")
         (python-shell-completion-setup-code . "from IPython.core.completerlib import module_completion")
         (python-shell-completion-string-code . "';'.join(module_completion('''%s'''))\n")
         (python-shell-completion-string-code . "';'.join(get_ipython().Completer.all_completions('''%s'''))\n")
         (python-shell-virtualenv-root . "/home/user/miniconda3/envs/xxx-web"))))


0 commentaires