Ich habe festgestellt, dass ich keine virtualenvwrapper-Befehle (wie workon) in einer Eshell verwenden kann, aber sie funktionieren in einer Shell-Umgebung. Gibt es einen Virtualenvwrapper-ähnlichen Modus für Emacs?
virtualenvwrapper(in melpa) gibt den Befehl venv-workonzum Wechseln der Umgebung, aber auch für alle Emacs-Sitzungen. wikemacs.org/index.php/Python#See_also pyvenv sieht jedoch vollständiger aus.
Ehvince
Antworten:
4
virtualenvwrapper(in melpa) gibt den Befehl venv-workonzum Wechseln der Umgebung, aber auch für alle Emacs-Sitzungen. Es funktioniert mit eshell mit venv-initialize-eshell:
Die Unterstützung für eshell wird durch Aufrufen von venv-initialize-eshell aktiviert. Danach befinden sich alle neuen Eshells, die Sie starten, in der richtigen virtuellen Umgebung und haben Zugriff auf installierte ausführbare Dateien usw. Der Modus bietet auch eine Vielzahl von virtuellen Envwrapper-Befehlen, die identisch mit ihren bash / zsh-Gegenstücken funktionieren (im Folgenden ausführlich beschrieben). Beachten Sie, dass Eshell im Gegensatz zur Funktionsweise interaktiver Shells eine Umgebung mit Emacs teilt. Wenn Sie also eine aktivieren oder deaktivieren, ist auch die andere betroffen. Beachten Sie, dass hierfür die Variable eshell-modify-global-environment auf true gesetzt werden muss. Wenn Sie venv-initialize-eshell ausführen, tritt dies auf. Wenn dies bei Ihnen nicht funktioniert, öffnen Sie ein Problem! Es ist technisch möglich, die beiden zu trennen, aber es erfordert ein wenig Hacken mit den verschiedenen Namespaces, die ich gewonnen habe. '
und beim Ändern der eshell-Eingabeaufforderung:
Anpassung der Eshell-Eingabeaufforderung
Möglicherweise möchten Sie auch, dass der Name Ihrer aktuellen virtuellen Umgebung in der Eingabeaufforderung von eshell angezeigt wird. Sie können dies durch einen ziemlich ähnlichen Mechanismus tun, indem Sie einfach irgendwo venv-current-name in Ihre eshell-prompt-Funktion aufnehmen. Hier ist ein einfaches Beispiel für eine Eingabeaufforderung, die den aktuellen Namen der virtuellen Umgebung gefolgt von einem Dollarzeichen enthält:
Mit pyvenv können Sie eine virtuelle Umgebung in Emacs verwenden. Beachten Sie jedoch, dass dieses Paket aufgrund einiger Einschränkungen von Emacs Ihre gesamte Emacs-Sitzung auf eine bestimmte virtuelle Umgebung umschaltet. Wenn ich mich richtig erinnere, ist es nicht möglich, nur einen Puffer auf eine virtuelle Umgebung umzuschalten.
Normalerweise verwende ich meine .dir-Locations.el, um den Pyvenv pro Projekt zu wechseln. pyvenv hat auch eine Tracking-Einstellung, die beim Umschalten der Puffer automatisch umschaltet.
virtualenvwrapper
(in melpa) gibt den Befehlvenv-workon
zum Wechseln der Umgebung, aber auch für alle Emacs-Sitzungen. wikemacs.org/index.php/Python#See_also pyvenv sieht jedoch vollständiger aus.Antworten:
virtualenvwrapper
(in melpa) gibt den Befehlvenv-workon
zum Wechseln der Umgebung, aber auch für alle Emacs-Sitzungen. Es funktioniert mit eshell mitvenv-initialize-eshell
:und beim Ändern der eshell-Eingabeaufforderung:
Funktioniert mit (e) Shells, hat eine automatische Aktivierung und wird in der Moduszeile angezeigt.
Es würde mich interessieren, die Unterschiede zwischen ihm und pyvenv zu kennen.
quelle
Mit pyvenv können Sie eine virtuelle Umgebung in Emacs verwenden. Beachten Sie jedoch, dass dieses Paket aufgrund einiger Einschränkungen von Emacs Ihre gesamte Emacs-Sitzung auf eine bestimmte virtuelle Umgebung umschaltet. Wenn ich mich richtig erinnere, ist es nicht möglich, nur einen Puffer auf eine virtuelle Umgebung umzuschalten.
quelle