11 Stimmen

Wie führt man die Django-Shell von Emacs aus?

Ich würde gerne Folgendes ausführen können ./manage.py shell in einem Emacs-Puffer, mit all den netten Dingen, die man von ipython bekommt, wie magische Befehle und Autovervollständigung. Idealerweise würde ich auch gerne in der Lage sein, Code aus einem Puffer in der Django-Shell auszuwerten.

Ist dies möglich?

0voto

Pinochle Punkte 5413

Es wird nicht funktionieren in shell ? Ich habe es gerade geschafft, eine Django-Shell-Sitzung in Emacs zu starten.

Hit M-x shell und starten Sie dann Ihre Python-Shell innerhalb dieser Bash-Shell-Sitzung, etwa so:

 M-x shell

die Muschel spawnt

prompt> cd path/to/my/django/directory
prompt> python manage.py shell
Python 2.6.1 (r261:67515, Jul  7 2009, 23:51:51) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

und es sollte eine Django-Shell aufgerufen werden, so als ob Sie in einem bloßen Terminal arbeiten würden, aber es ist ein anderer Puffer in Emacs.

Was die Integration betrifft (Senden von Code an die Shell zur Auswertung usw.), so scheint es, dass Sie das Gesuchte unten auf der Seite finden können hier (Emacs Wiki für python.el) . Dort gibt es viele Informationen darüber, wie man iPython mit python.el zum Laufen bringt, und man kann es vielleicht dazu bringen, die Django-Shell zu starten, indem man den Code dort oder in python.el modifiziert.

0voto

MadPhysicist Punkte 4706

Dieser Artikel ist alt, aber hoffentlich hilft er jemandem.

Der modernste und einfachste Weg, Django unter Emacs zu entwickeln, ist die Verwendung des Django-Emacs-Modus.

Sie ist hier zu finden.

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

Es sieht in etwa so aus:

enter image description here

Wenn Sie diesen Modus installiert haben, erhalten Sie einen Menüeintrag mit dem Titel "Django" in Ihrem Emacs. Wie Sie auf dem Screenshot oben sehen können, haben Sie alle Befehle, die Sie sich vorstellen können, im Menü oder als Tastaturkürzel. Die Django-Shell ist da, neben all den anderen Dingen.

Das ist ein wirklich cooler Modus.

P.S. Ich bin weder ein Entwickler noch eine interessierte Partei, wenn es um diesen Modus geht. Ich bin ein glücklicher Benutzer.

Edita:

Es scheint, dass das Format für .dir-local.el Datei hat sich leicht verändert. Ich verwende derzeit Emacs 25.2.2 und das folgende Format funktioniert für diese Aufgabe

((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"))))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X