Python3,Emacs(OSX)中的Elpy:未找到完成用户错误:无法完成

Posted

技术标签:

【中文标题】Python3,Emacs(OSX)中的Elpy:未找到完成用户错误:无法完成【英文标题】:Python3, Elpy in Emacs (OSX): No completion found user-error: Cannot complete at point 【发布时间】:2018-10-04 03:31:08 【问题描述】:

OSX 10.13.4 emacs: 25.3 (9.0) 蟒蛇3.5.2

我在 emcas 中遇到了 elpy 自动完成的问题。本质上,elpy 卡在点上(例如:numpy.)并且不建议任何可能的完成。如果我按下任何键,我会看到一条消息:'未找到完成 用户错误:尽管所有必需的软件包都已正确安装,但无法完成。我怀疑这可能是由于配置:

Elpy Configuration

Virtualenv........: None
RPC Python........: 3.5.2 (/usr/local/bin/python3)
Interactive Python: /usr/local/bin/python3 (/usr/local/bin/python3)
Emacs.............: 25.3.1
Elpy..............: 1.19.0
Jedi..............: 0.12.0
Rope..............: 0.10.7
Autopep8..........: 1.3.5
Yapf..............: 0.21.0
Syntax checker....: Not found (flake8)

You have not activated a virtual env. While Elpy supports this, it is
often a good idea to work inside a virtual env. You can use M-x
pyvenv-activate or M-x pyvenv-workon to activate a virtual env.

The directory ~/.local/bin/ is not in your PATH. As there is no active
virtualenv, installing Python packages locally will place executables
in that directory, so Emacs won't find them. If you are missing some
commands, do add this directory to your PATH -- and then do
`elpy-rpc-restart'.

The configured syntax checker could not be found. Elpy uses this
program to provide syntax checks of your programs, so you might want
to install one. Elpy by default uses flake8.

但是,当尝试在终端中设置路径时:'PATH=$PATH:/.local/bin/' 确实可以解决问题。

请问我该如何解决?

【问题讨论】:

【参考方案1】:

解决这个问题最简单的方法是使用:https://github.com/purcell/exec-path-from-shell 包。它将在 Emacs 中设置路径来解决您的问题。如果您不想安装此软件包,可以将以下 sn-p 放入您的 .emacs

(let ((path (shell-command-to-string "$SHELL -cl \"printf %s \\\"\\\$PATH\\\"\"")))
  (setenv "PATH" path)
  (setq exec-path (split-string path path-separator)))

以上内容应该适用于任何与sh 兼容的shell。我建议使用 exec-path-from-shell 易于设置,并且无论您使用什么外壳都可以做正确的事情。

请记住,这两种方法都会从 shell 中获取 $PATH,因此请确保您的 PATH 已按照您的要求在您的 $HOME/.bashrc 中设置(假设您使用的是 bash)。类似:export PATH=$HOME/.local/bin:$PATH 应该这样做。

【讨论】:

以上是关于Python3,Emacs(OSX)中的Elpy:未找到完成用户错误:无法完成的主要内容,如果未能解决你的问题,请参考以下文章

emacs elpy代码补全功能

带有Elpy 1.7.50的Emacs 24无法识别Python项目

Emacs Python 自动补全--Elpy

如何从 OSX 的命令行启动 GUI Emacs?

osx 上的 emacs 23 和 24:为啥 aquamacs-kill-word 有时会删除到行尾?

Mac OSX、Emacs 24.2 和 nrepl.el 不工作