[英]Python3 not listing the pip installed modules in Vim 8
我正在嘗試在 mac os 中為 Vim 設置 deoplete。 對此的一個要求是安裝我用pip3 install pynvim
pynvim
現在在 Vim 中, :python3 import pynvim
會拋出錯誤ImportError: No module named pynvim
。 但是,在 Vim 之外, pip3 list
列出了 package pynvim
。 我不明白這里出了什么問題。
我已經收集了一些信息,我認為我應該能夠根據這些信息獲得一些幫助來防止這個錯誤。
:echo exepath('python3')
返回/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
python3 help('modules')
沒有列出 package 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.
/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
中任何位置的所有模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.