我正在为mac os中的Vim设置deoplete。这方面的一个要求是安装pynvim
,这是我用pip3 install pynvim
做的
现在在Vim中,:python3 import pynvim
抛出一个错误ImportError: No module named pynvim
。但是,在Vim之外,pip3 list
列出了包pynvim
。我不明白这里出了什么问题
我收集了一些信息,根据这些信息,我认为我应该能够得到一些帮助来防止这个错误
:echo exepath('python3')
返回/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
python3 help('modules')
没有列出包pynvim
。有趣的是python3 help('modules')
还显示了一个警告/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/setuptools/distutils_patch.py:25: UserWarning: Distutils was imported before Setuptools. This usage is discou raged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first.
。从这个警告中,我们可以看到Vim环境使用的是python3.8,而不是python3.6,它与echo exepath('python3')
返回的内容冲突pip3 -V
返回pip 20.2.1 from /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip (python 3.6)
ls -l /usr/local/bin/python*
显示/usr/local/bin/python -> /usr/local/bin/python3.6
/usr/local/bin/python3 -> ../Cellar/python@3.8/3.8.5/bin/python3
/usr/local/bin/python3-config -> ../Cellar/python@3.8/3.8.5/bin/python3-config
/usr/local/bin/python3.6 -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
/usr/local/bin/python3.6-config -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6-config
/usr/local/bin/python3.6m -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m
/usr/local/bin/python3.6m-config -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m-config
/usr/local/bin/python3.8 -> ../Cellar/python@3.8/3.8.5/bin/python3.8
/usr/local/bin/python3.8-config -> ../Cellar/python@3.8/3.8.5/bin/python3.8-config
看起来我的mac上有多个Python版本把事情搞砸了。我如何摆脱这种混乱并防止Vim错误
根本问题与Vim编译有关。在我的例子中,我的Vim是使用Python3支持编译的,因此它使用系统Python3.8作为解释器,所有模块都来自这个系统Python3.8路径。我们可以通过在
.bashrc
、/.zshrc
等中添加$PYTHONPATH
来改变这一点:export PYTHONPATH="/home/user-name/your-python-path/site-packages":$PYTHONPATH
。通过这样做,Vim可以访问$PYTHONPATH
中任何地方的所有模块相关问题 更多 >
编程相关推荐