Jak skonfigurować elpy do używania Python3?

22

Podczas konfigurowania emacsa dla nowego środowiska pracy nie mogę uzyskać konfiguracji elpy, aby poprawnie używać Pythona 3. Zainstalowałem wszystkie wymagane pakiety /usr/local/bini zainstalowałem je za pomocą Pythona3.

W tej chwili po uruchomieniu elpy-config otrzymuję następujące informacje:

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)

Chciałbym, aby RPC Python był ipython3 i taki sam dla interaktywnego. Dla celów tego pytania, załóżmy, że mój plik .emacs jest pusty.

Adam
źródło
Mam nadzieję, że masz na myśli / usr / local / bin
user151019,

Odpowiedzi:

16

Możesz konfigigurować elpy-rpc-python-command. Jeśli chcesz Python3, możesz ustawić go w ten sposób.

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

Aktualizacja

Utwórz wirtualny python3 za pomocą virtualenvwrapper z terminala

$ mkvirtualenv test -p /usr/bin/python3

a następnie zainstaluj wymagane pakiety

$ pip install rope jedi importmagic autopep8 flake8

Teraz przejdź do emacsa, aktywuj virtualenv i uruchom M-x elpy-config

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

Jeśli chcesz mieć ipythonjako REPL, możesz umieścić tę funkcję w swojej konfiguracji

(elpy-use-ipython)

lub

(elpy-use-ipython "python3")

Uwaga: elpy-use-ipythonjest przestarzałe. Posługiwać się

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

lub na ipythonpodstawie twojej wersji.

ChillarAnand
źródło
Wykonanie tego, a następnie powrót do konfiguracji mówi, że python3 nie jest rozpoznawany, a Jedi, Importmagic i autopep8 są teraz oznaczone jakonot found
adam
Musisz ustawić pełną ścieżkę do python3. Jeśli używasz Ubuntu, możesz użyć /usr/bin/python3. W każdym razie lepiej jest utworzyć wirtualną env python3, aktywować env i zainstalować te pakiety. Zaktualizowana odpowiedź
ChillarAnand
2
Jeśli masz zainstalowany ipython dla Python2 i ipython3 dla Python3, możesz użyć ipython3 REPL, (elpy-use-ipython "ipython3")zakładając, że jest to Twoja ścieżka.
Viktor Haag
1
(elpy-use-ipython)jest przestarzałe; patrz elpy.readthedocs.io/en/latest/ide.html#interpreter-setup
BallpointBen
4

Możesz rozwiązać ten problem, modyfikując konfigurację powłoki Pythona z Pythona na Python3 w elpy-config

  1. M-x elpy-config aby wejść na stronę konfiguracji elpy
  2. jeśli przewiniesz w dół, zobaczysz grupy ze znakami [+], przełącz jeden Python i znajdź opcję interpretera powłoki: Option Python Shell Interpreterto ta, której szukasz.
  3. Jeśli klikniesz (lub Enter w wersji terminalowej) na przycisk opcji, będziesz mógł edytować część „python” na „python3”
  4. Zastosuj i zapisz, a następnie uruchom ponownie emacsa
Luke Spinner
źródło
Zrobiłem to i elpy-configjuż się nie otwiera: mówi, że nie można znaleźć python3. Jednak python3 jest w mojej ścieżce, bo mogę wystawić go jako polecenie w terminalu bez problemu. Z jakiegoś powodu emacs nie przechwytuje mojej pełnej ścieżki. Czy to funkcja, czy błąd? Zauważyłem to w wielu innych pakietach wymagających również gorszych powłok.
xdavidliu
nieważne, korzystam z OSX i używam GUI emacs, a tutaj jest naprawdę zły problem, że gui emacs (w przeciwieństwie do terminalowych emacs) nie przechwytuje mojej zmiennej PATH .
xdavidliu
0

Ustaw zmienną interpretera w swoim .emacspliku:

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

Zaczerpnięty z instrukcji Elpy

init0
źródło