python - Python3 未在 Vim 8 中列出 pip 安装的模块
问题描述
我正在尝试在 mac os 中为 Vim 设置 deoplete。对此的一个要求是安装pynvim
我所做的pip3 install pynvim
现在在 Vim 中,:python3 import pynvim
抛出一个错误ImportError: No module named pynvim
。但是,在 Vim 之外,pip3 list
列出了 package pynvim
。我不明白这里出了什么问题。
我已经收集了一些信息,我认为我应该能够根据这些信息获得一些帮助来防止这个错误。
- 从 Vim
:echo exepath('python3')
返回/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
- 在 Vim 中,
python3 help('modules')
不要列出 packagepynvim
。有趣的是,它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 路径。我们可以通过附加到$PYTHONPATH
in.bashrc
等来改变这一点/.zshrc
:
export PYTHONPATH="/home/user-name/your-python-path/site-packages":$PYTHONPATH
通过这样做,Vim 可以访问在$PYTHONPATH
.
推荐阅读
- c++ - 在文件c ++中查找并删除整行
- python - 如何在 Appium Python 中找到已知子元素的父元素?
- nginx - nginx 入口拒绝带有 400 代码状态码的 HTTP POST 请求
- javascript - 从 JSON 对象递归构建查询字符串
- jquery - 使用 jQuery,如何在用户键入时突出显示所有新出现的和现有的单词?
- android-studio - 如何将搜索过滤器添加到每页的recyclerview的最后一页?
- c# - SystemResourceKey 引用的 WPF 视图样式
- python - 使用 BeautifulSoup 和 Pandas 在 Python 中进行动态网页抓取
- testing - Testcafe - 无法点击按钮
- javascript - 从基于另一个数组的对象数组中删除不相似的值