Emacs Python Elpy автозаполнение не работает для всех - PullRequest
0 голосов
/ 24 апреля 2018

Использование Mac OSC 10.13.4, emacs 25.3 (9.0), Python3

У меня может быть несколько случаев автодополнения Elpy для работы на python3, но по некоторым причинам, не всегда.
Например,

numpy.

вызывает автозаполнение, но,

pandas.

нет.

Моя интуиция заключается в том, что, хотя numpy входит в стандартную комплектацию python3, панда - нет. Поэтому мне нужно, чтобы emacs указывал на каталог, в котором расположены дополнительные модули. Короче говоря, emacs не использует те же пути, что и python3 ... Я пытался добавить путь к текущим путям Emacs, но он всегда не мог добавить их. Как я могу это сделать?

Numpy gets autocompletion but pandas does not

1 Ответ

0 голосов
/ 24 апреля 2018

Проблема почти наверняка в том, что elpy не использует тот же Python, который вы думаете.

Поскольку вы работаете в macOS, у вас есть по крайней мере еще один Python - предустановленная версия ApplePython 2,7 в /usr/bin/python.И в большинстве версий macOS это включает специальный каталог «Extras», полный вещей, которые обычно не входят в состав Python - который включает numpy, но не pandas, а в некоторых версиях даже не pip.

Итак, ваши pip show numpy и pip show pandas используют Python 3.5 pip, потому что это единственный pip, который у вас есть.

Но если elpy находит Python от Apple2.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 , чем тег Python на SO.

...