Comment configurer elpy pour utiliser python3?

22

Lors de la configuration de mes emacs pour un nouvel environnement de travail, je ne parviens pas à obtenir la configuration elpy pour utiliser correctement python 3. J'ai installé tous les packages requis dans /usr/local/binet les ai installés à l'aide de python3.

En ce moment, lorsque j'exécute elpy-config, j'obtiens ce qui suit:

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)

Je voudrais que RPC Python soit ipython3 et la même chose pour l'interactif. Aux fins de cette question, supposez que mon fichier .emacs est vide.

Adam
la source
J'espère que vous voulez dire / usr / local / bin
user151019

Réponses:

16

Vous pouvez configurer elpy-rpc-python-command. Si vous voulez Python3, vous pouvez le définir comme ceci.

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

Mise à jour

Créer python3 virtualenv en utilisant virtualenvwrapper à partir du terminal

$ mkvirtualenv test -p /usr/bin/python3

puis installez les packages requis

$ pip install rope jedi importmagic autopep8 flake8

Maintenant, allez dans emacs, activez virtualenv et exécutez M-x elpy-config

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

Si vous voulez avoir ipythoncomme REPL, vous pouvez mettre cette fonction dans votre configuration

(elpy-use-ipython)

ou

(elpy-use-ipython "python3")

Remarque: elpy-use-ipythonest obsolète. Utilisation

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

ou en ipythonfonction de votre version.

ChillarAnand
la source
Faire cela, puis revenir dans la configuration, dit que python3 n'est pas reconnu et Jedi, Importmagic et autopep8 sont maintenant marqués commenot found
Adam
Vous devez définir le chemin d'accès complet à python3. Si vous utilisez ubuntu, vous pouvez utiliser /usr/bin/python3. Dans tous les cas, il est préférable de créer un env virtuel python3, d'activer cet env et d'installer ces packages. Réponse mise à jour
ChillarAnand
2
Si ipython est installé pour Python2 et ipython3 est installé pour Python3, alors vous pouvez utiliser la réplication ipython3 en (elpy-use-ipython "ipython3")supposant que c'est sur votre chemin.
Viktor Haag
1
(elpy-use-ipython)est obsolète; voir elpy.readthedocs.io/en/latest/ide.html#interpreter-setup
BallpointBen
4

Vous pouvez résoudre ce problème en modifiant la configuration du shell python de python à python3 dans elpy-config

  1. M-x elpy-config entrer dans la page de configuration d'elpy
  2. si vous faites défiler vers le bas, vous verrez des groupes avec des signes [+], basculez celui en Python et trouvez l'option interpréteur de shell: Option Python Shell Interpreterc'est celui que vous recherchez.
  3. Si vous cliquez (ou entrez dans la version du terminal) sur le bouton Option, vous pourrez modifier la partie "python" en "python3"
  4. Appliquer et enregistrer et redémarrer emacs
Luke Spinner
la source
Je l'ai fait et elpy-configne s'ouvre plus: il dit qu'il ne peut pas trouver python3. Cependant, python3 est sur mon chemin car je peux l'exécuter en tant que commande dans le terminal sans problème. Pour une raison quelconque, emacs ne capture pas réellement mon chemin complet. Est-ce une fonctionnalité ou un bug? Je l'ai remarqué dans de nombreux autres packages nécessitant également des coques inférieures.
xdavidliu
peu importe, je suis sur OSX et j'utilise gui emacs, et il y a un très mauvais problème ici que gui emacs (par opposition aux emacs terminaux) ne capture pas ma variable PATH .
xdavidliu
0

Définissez la variable interprète dans votre .emacsfichier:

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

Extrait du manuel elpy

init0
la source