emacs python Elpy 自动完成不适用于所有人
emacs python Elpy auto-complete not working for all
使用 Mac OSC 10.13.4,emacs 25.3 (9.0),Python3
我可以让一些 Elpy 自动补全案例适用于 python3,但由于某些原因,并非总是如此。
例如,
numpy.
触发自动完成,但是,
pandas.
没有。
我的直觉是,虽然 numpy 是 python3 的标准,但 pandas 不是。所以我需要让 emacs 指向附加模块所在的目录。简而言之,emacs 不使用与 python3 相同的路径 ...
我试图将路径添加到当前的 emacs 路径,但它总是无法附加这些路径。我怎样才能做到这一点?
问题几乎可以肯定 elpy
没有使用您认为的 Python。
由于您使用的是 macOS,因此您至少还有一个 Python—Apple 在 /usr/bin/python
中预装的 Python 2.7 版本。在大多数版本的 macOS 中,这包括一个特殊的 "Extras" 目录,里面装满了 Python 通常不内置的东西,其中包括 numpy
,但不包括 pandas
,在某些版本中甚至 pip
.
因此,您的 pip show numpy
和 pip show pandas
使用的是 Python 3.5 pip
,因为这是您唯一的 pip
。
但是,如果 elpy
正在查找 Apple 的 Python 2.7 而不是您安装的 Python 3.5,它将查找 Extras numpy
而不会找到任何 pandas
.
您还应该看到其他奇怪的不当行为,例如 elpy
试图完成 print
作为 Python 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
……等等
如果是这样,答案是您需要修复 elpy
配置以使用 /usr/local/bin/python3
(或您的 Python 3.5 的任何适当路径)。
我相信只要配置 elpy-rpc-python-command
就能让它正确地获取其他所有内容。或者您可以直接在 elpy-config
中进行。但这对于 emacs.SE 来说可能比 SO 上的 Python 标签更好。
使用 Mac OSC 10.13.4,emacs 25.3 (9.0),Python3
我可以让一些 Elpy 自动补全案例适用于 python3,但由于某些原因,并非总是如此。
例如,
numpy.
触发自动完成,但是,
pandas.
没有。
我的直觉是,虽然 numpy 是 python3 的标准,但 pandas 不是。所以我需要让 emacs 指向附加模块所在的目录。简而言之,emacs 不使用与 python3 相同的路径 ... 我试图将路径添加到当前的 emacs 路径,但它总是无法附加这些路径。我怎样才能做到这一点?
问题几乎可以肯定 elpy
没有使用您认为的 Python。
由于您使用的是 macOS,因此您至少还有一个 Python—Apple 在 /usr/bin/python
中预装的 Python 2.7 版本。在大多数版本的 macOS 中,这包括一个特殊的 "Extras" 目录,里面装满了 Python 通常不内置的东西,其中包括 numpy
,但不包括 pandas
,在某些版本中甚至 pip
.
因此,您的 pip show numpy
和 pip show pandas
使用的是 Python 3.5 pip
,因为这是您唯一的 pip
。
但是,如果 elpy
正在查找 Apple 的 Python 2.7 而不是您安装的 Python 3.5,它将查找 Extras numpy
而不会找到任何 pandas
.
您还应该看到其他奇怪的不当行为,例如 elpy
试图完成 print
作为 Python 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
……等等
如果是这样,答案是您需要修复 elpy
配置以使用 /usr/local/bin/python3
(或您的 Python 3.5 的任何适当路径)。
我相信只要配置 elpy-rpc-python-command
就能让它正确地获取其他所有内容。或者您可以直接在 elpy-config
中进行。但这对于 emacs.SE 来说可能比 SO 上的 Python 标签更好。