3

使用 Mac OSC 10.13.4、emacs 25.3 (9.0)、Python3

我可能有一些 Elpy 自动补全的情况适用于 python3,但由于某种原因,并非总是如此。
例如,

numpy.

触发自动完成,但是,

pandas.

才不是。

我的直觉是,虽然 numpy 是 python3 的标准配置,但 pandas 没有。所以我需要让emacs指向附加模块所在的目录。简而言之,emacs 不使用与 python3 相同的路径……我尝试向当前的 emacs 路径添加路径,但始终无法附加这些路径。我怎样才能做到这一点?

Numpy 自动完成 但熊猫没有

4

1 回答 1

3

几乎可以肯定,问题在于elpy没有使用您认为的相同 Python。

由于您使用的是 macOS,因此您至少还有一个 Python — Apple 预装的 Python 2.7 版本/usr/bin/python。在大多数 macOS 版本中,这包括一个特殊的“Extras”目录,其中包含 Python 通常不内置的内容——其中包括numpy,但不包括 ,pandas在某些版本中甚至不包括pip.

所以,你pip show numpypip show pandas正在使用 Python 3.5 pip,因为这是pip你唯一拥有的。

但如果elpy是查找 Apple 的 Python 2.7 而不是您安装的 Python 3.5,它会找到 Extrasnumpy而不会找到任何pandas.

您还应该看到其他奇怪的错误行为,例如elpy尝试以printPython 2.x 语句而不是 Python 3.x 函数的形式完成 - 但诊断问题的最简单方法不是深入研究所有这些细节,而只是M-x elpy-config. 它应该显示如下内容:

Virtualenv........: None
RPC Python........: 2.7.10 (/usr/bin/python)
Interactive Python: python (/usr/bin/python)
Emacs.............: 25.3.0

… ETC。

如果是这样,答案是您需要修复elpy要使用的配置/usr/local/bin/python3(或 Python 3.5 的任何适当路径)。

我相信只是配置elpy-rpc-python-command会导致它正确地拾取其他所有东西。或者你可以从它elpy-config自身内部去做。但这对于emacs.SE 来说可能是一个比 SO 上的 Python 标记更好的问题。

于 2018-04-24T18:36:35.850 回答