如何设置Elpy以使用python3?


22

在为新的工作环境设置我的emacs时,我无法获得elpy配置以正确/usr/local/bin使用python3。我已经安装了所有必需的软件包,并已使用python3安装了它们。

现在,当我运行elpy-config时,我得到以下信息:

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)

我希望RPC Python是ipython3,并且对于交互式而言也是相同的。对于此问题,假定我的.emacs文件为空。


我希望您的意思是/ usr / local / bin
user151019

Answers:


16

你可以构想elpy-rpc-python-command。如果您想要Python3,可以这样设置。

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

更新资料

从终端使用virtualenvwrapper创建python3 virtualenv

$ mkvirtualenv test -p /usr/bin/python3

然后安装所需的软件包

$ pip install rope jedi importmagic autopep8 flake8

现在转到emacs,激活virtualenv并运行 M-x elpy-config

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

如果您想拥有ipython自己的REPL,可以将此功能放在配置中

(elpy-use-ipython)

要么

(elpy-use-ipython "python3")

注意:elpy-use-ipython已弃用。使用

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

ipython根据您的版本。


执行此操作,然后返回到配置,则表明无法识别python3,并且Jedi,Importmagic和autopep8现在被标记为not found
adam

您必须设置的完整路径python3。如果您正在使用ubuntu,则可以使用/usr/bin/python3。无论如何,最好创建python3虚拟环境,激活该环境并安装这些软件包。更新的答案
ChillarAnand

2
如果您已经为Python2安装了ipython,并且为Python3安装了ipython3,则可以使用ipython3 REPL并(elpy-use-ipython "ipython3")假设它在您的路径中。
维克多·哈格

1
(elpy-use-ipython)不推荐使用;请参阅elpy.readthedocs.io/en/latest/ide.html#interpreter-setup
BallpointBen

4

您可以通过在elpy-config中将python shell配置从python修改为python3来解决此问题

  1. M-x elpy-config 进入elpy的配置页面
  2. 如果向下滚动,您将看到带有[+]号的组,将Python切换为一个,然后找到shell解释器选项:Option Python Shell Interpreter您正在寻找的那个。
  3. 如果在“选项”按钮上单击(或在终端版本中输入),则可以将部分“ python”编辑为“ python3”
  4. 应用并保存,然后重新启动emacs

我这样做了,elpy-config不再打开:它说找不到python3。但是,这python3 我的路,因为我可以在终端中将其作为命令发出,没有问题。由于某些原因,emacs实际上并未捕获我的完整路径。这是功能还是错误?我在许多其他需要劣质外壳的软件包中也注意到了这一点。
xdavidliu

没关系,我在OSX上并使用gui emacs,这里有一个非常糟糕的陷阱,就是gui emacs(与终端emacs相对)没有捕获我的PATH变量
xdavidliu

0

.emacs文件中设置解释器变量:

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

摘自Elpy手册

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.