我在neovim中设置python代码完成时遇到了麻烦。我的完成源由deoplete管理,我尝试使用2个来源:LanguageClient-neovim和deoplete-jedi。
我对语言客户端感到高兴几秒钟,直到我厌倦完成numpy
。 deoplete-jedi和语言客户端都使用jedi作为代码完成的后端,后者通过python-language-server。
一次发布import nump<TAB>
两个来源之一:
numpy
和子模块(注意:语言客户端工作&#34;好&#34;尽管它没有列出很多模块)
我有
❯ python --version
Python 3.6.5 :: Anaconda, Inc.
和
❯ conda list jedi
# packages in environment at /opt/anaconda3:
#
# Name Version Build Channel
jedi 0.12.0 py36_1
~
❯ conda list python-language-server
# packages in environment at /opt/anaconda3:
#
# Name Version Build Channel
python-language-server 0.19.0 <pip>
我已使用命令行中的以下命令测试了jedi:
❯ python -c "import jedi; print(jedi.Script('import nump').completions())"
[]
❯ python -c "import jedi, sys; print(jedi.Script('import nump',sys_path=sys.path).completions())"
[<Completion: numpy>, <Completion: numpydoc>]
几乎可以解决问题所在。绝地显然忽略了sys.path
,但我不知道下一步该做什么!
❯ python -c "import sys; print(sys.path)"
['',
'/opt/anaconda3/lib/python36.zip',
'/opt/anaconda3/lib/python3.6',
'/opt/anaconda3/lib/python3.6/lib-dynload',
'/opt/anaconda3/lib/python3.6/site-packages',
'/opt/anaconda3/lib/python3.6/site-packages/aeosa']