Wie richte ich elpy für die Verwendung von python3 ein?

22

Wenn ich meinen Emacs für eine neue Arbeitsumgebung einrichte, kann ich die elpy-Konfiguration nicht dazu bringen, Python 3 korrekt zu verwenden. Ich habe alle erforderlichen Pakete in /usr/local/bininstalliert und sie mit Python3 installiert.

Wenn ich gerade elpy-config ausführe, erhalte ich Folgendes:

Virtualenv........: None
RPC Python........: 2.7.6 (/usr/bin/python)
Interactive Python: python (/usr/bin/python)
Emacs.............: 24.5.1
Elpy..............: 1.9.0
Jedi..............: 0.9.0
Rope..............: Not found (0.10.2 available)
Importmagic.......: 0.1.3
Autopep8..........: 0.1.3
Syntax checker....: Not found (pyflakes)

Ich möchte, dass RPC Python ipython3 ist und dasselbe für das interaktive. Angenommen, für diese Frage ist meine .emacs-Datei leer.

Adam
quelle
Ich hoffe du meinst / usr / local / bin
user151019

Antworten:

16

Sie können konfigurieren elpy-rpc-python-command. Wenn Sie Python3 wollen, können Sie es so einstellen.

(setq elpy-rpc-python-command "python3")

Aktualisieren

Erstellen Sie python3 virtualenv mit virtualenvwrapper vom Terminal aus

$ mkvirtualenv test -p /usr/bin/python3

und installieren Sie dann die erforderlichen Pakete

$ pip install rope jedi importmagic autopep8 flake8

Gehe nun zu Emacs, aktiviere virtualenv und starte M-x elpy-config

M-x pyvenv-workon test
M-x elpy-config

Wenn Sie ipythonals Ihre REPL haben möchten , können Sie diese Funktion in Ihrer Konfiguration setzen

(elpy-use-ipython)

oder

(elpy-use-ipython "python3")

Hinweis: elpy-use-ipythonist veraltet. Verwenden

(setenv "IPY_TEST_SIMPLE_PROMPT" "1")
(setq python-shell-interpreter "ipython3"
      python-shell-interpreter-args "-i")

oder ipythonbasierend auf Ihrer Version.

ChillarAnand
quelle
Wenn Sie dies tun und dann zurück in die Konfiguration gehen, wird Python3 nicht erkannt und Jedi, Importmagic und autopep8 werden jetzt alsnot found
adam
Sie müssen den vollständigen Pfad zu festlegen python3. Wenn Sie Ubuntu verwenden, können Sie verwenden /usr/bin/python3. In jedem Fall ist es besser, wenn Sie python3 virtual env erstellen, diese env aktivieren und diese Pakete installieren. Aktualisierte Antwort
ChillarAnand
2
Wenn Sie ipython für Python2 und ipython3 für Python3 installiert haben, können Sie ipython3 REPL verwenden, (elpy-use-ipython "ipython3")vorausgesetzt, dies befindet sich in Ihrem Pfad.
Viktor Haag
1
(elpy-use-ipython)ist veraltet; siehe elpy.readthedocs.io/en/latest/ide.html#interpreter-setup
BallpointBen
4

Sie können dieses Problem beheben, indem Sie die Python-Shell-Konfiguration in elpy-config von python auf python3 ändern

  1. M-x elpy-config um die Konfigurationsseite von elpy aufzurufen
  2. Wenn Sie nach unten scrollen, sehen Sie Gruppen mit [+] - Zeichen. Schalten Sie die Python-Option um und suchen Sie die Shell-Interpreter-Option: Option Python Shell Interpreterist diejenige, nach der Sie suchen.
  3. Wenn Sie auf das Optionsfeld klicken (oder in Terminalversion eingeben), können Sie den Part "python" in "python3" ändern.
  4. Übernehmen und speichern, und starten Sie Emacs neu
Luke Spinner
quelle
Ich habe dies getan und elpy-configöffnet nicht mehr: Es heißt, es kann nicht finden python3. Allerdings python3 ist in meinem Weg, da ich es als Befehl im Terminal problemlos absetzen kann. Aus irgendeinem Grund erfasst Emacs nicht meinen vollständigen Pfad. Ist das ein Feature oder ein Bug? Ich bemerkte es in vielen anderen Paketen, die auch minderwertige Schalen benötigten.
Xdavidliu
Es macht nichts, ich bin unter OSX und benutze GUI-Emacs, und hier gibt es eine wirklich schlechte Sache, dass GUI-Emacs (im Gegensatz zu Terminal-Emacs) meine PATH-Variable nicht erfassen .
Xdavidliu
0

Legen Sie die Interpreter-Variable in Ihrer .emacsDatei fest:

(setq python-shell-interpreter "python3"
      python-shell-interpreter-args "-i")

Entnommen aus dem Elpy-Handbuch

init0
quelle