¿Cómo configurar elpy para usar python3?

22

Al configurar mis emacs para un nuevo entorno de trabajo, no puedo obtener la configuración de elpy para usar correctamente Python 3. Instalé todos los paquetes necesarios /usr/local/biny los instalé usando python3.

En este momento, cuando ejecuto elpy-config obtengo lo siguiente:

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)

Me gustaría que RPC Python sea ipython3 y lo mismo para el interactivo. Para los fines de esta pregunta, suponga que mi archivo .emacs está en blanco.

Adán
fuente
Espero que te
refieras a

Respuestas:

16

Puedes configurar elpy-rpc-python-command. Si quieres Python3 puedes configurarlo así.

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

Actualizar

Crea python3 virtualenv usando virtualenvwrapper desde la terminal

$ mkvirtualenv test -p /usr/bin/python3

y luego instale los paquetes requeridos

$ pip install rope jedi importmagic autopep8 flake8

Ahora ve a emacs, activa virtualenv y ejecuta M-x elpy-config

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

Si desea tener ipythoncomo REPL, puede poner esta función en su configuración

(elpy-use-ipython)

o

(elpy-use-ipython "python3")

Nota: elpy-use-ipythonestá en desuso. Utilizar

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

o ipythonsegún tu versión.

ChillarAnand
fuente
Hacer esto y luego volver a la configuración dice que python3 no es reconocido y Jedi, Importmagic y autopep8 ahora están marcados comonot found
adam el
Tienes que establecer la ruta completa a python3. Si está usando ubuntu, puede usarlo /usr/bin/python3. En cualquier caso, es mejor si crea python3 virtual env, activa ese env e instala esos paquetes. Respuesta actualizada
ChillarAnand
2
Si tiene ipython instalado para Python2 e ipython3 instalado para Python3, puede usar ipython3 REPL (elpy-use-ipython "ipython3")asumiendo que está en su camino.
Viktor Haag
1
(elpy-use-ipython)es obsoleto; ver elpy.readthedocs.io/en/latest/ide.html#interpreter-setup
BallpointBen
4

Puede resolver esto modificando la configuración del shell de python de python a python3 en elpy-config

  1. M-x elpy-config para ingresar a la página de configuración de elpy
  2. Si se desplaza hacia abajo, verá grupos con signos [+], alternar el Python y encontrar la opción de intérprete de shell: Option Python Shell Interpreteres el que está buscando.
  3. Si hace clic (o Enter en la versión del terminal) en el botón Opción, podrá editar la parte "python" a "python3"
  4. Aplicar y guardar, y reiniciar emacs
Luke Spinner
fuente
Hice esto y elpy-configya no se abre: dice que no puede encontrar python3. Sin embargo, python3 está en mi camino porque puedo emitirlo como un comando en la terminal sin problema. Por alguna razón, emacs no está capturando mi camino completo. ¿Es esta una característica o un error? Lo noté en muchos otros paquetes que también requieren conchas inferiores.
xdavidliu
no importa, estoy en OSX y estoy usando gui emacs, y hay un problema realmente malo aquí que gui emacs (a diferencia de los terminales emacs) no captura mi variable PATH .
xdavidliu
0

Establezca la variable de intérprete en su .emacsarchivo:

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

Tomado del manual de elpy

init0
fuente