【问题标题】:Python3 not listing the pip installed modules in Vim 8Python3 未列出 Vim 8 中 pip 安装的模块
【发布时间】:2020-11-29 12:01:19
【问题描述】:

我正在尝试在 mac os 中为 Vim 设置 deoplete。对此的一个要求是安装pynvim,我使用pip3 install pynvim 完成了

现在在 Vim 中,:python3 import pynvim 会抛出错误 ImportError: No module named pynvim。然而,在 Vim 之外,pip3 list 列出了包 pynvim。我不明白这里出了什么问题。

我收集了一些信息,据此我认为我应该能够获得一些帮助以防止出现此错误。

  • 从 Vim,:echo exepath('python3') 返回 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
  • 来自 Vim,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 错误?

【问题讨论】:

    标签: python python-3.x linux macos vim


    【解决方案1】:

    根本问题与 Vim 编译有关。在我的例子中,我的 Vim 是在 Python3 支持下编译的,所以它使用系统 python3.8 作为解释器,所有模块都来自这个系统 python3.8 路径。我们可以通过在.bashrc/.zshrc 等中附加$PYTHONPATH 来更改它: export PYTHONPATH="/home/user-name/your-python-path/site-packages":$PYTHONPATH。通过这样做,Vim 可以访问在 $PYTHONPATH 的任何位置找到的所有模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2017-04-11
      • 2021-12-23
      • 2014-05-23
      • 2016-06-16
      相关资源
      最近更新 更多