2

OSX 10.13.4 emacs: 25.3 (9.0) python 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/' 确实可以解决问题。

请问我该如何解决?

4

1 回答 1

1

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

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

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

请记住,这两种方法都$PATH将从 shell 中获取,因此请确保在假设您使用 bashPATH时按照您的需要进行设置。$HOME/.bashrc像:export PATH=$HOME/.local/bin:$PATH应该这样做。

于 2018-05-20T02:45:53.633 回答