在 3.5.3 virtualenv 中運(yùn)行時(shí) Vim 中的 Python 錯(cuò)誤
我pyenv在 Ubuntu 16.04 上安裝了多個(gè) Python 版本。我創(chuàng)建了虛擬環(huán)境來(lái)處理使用不同版本的項(xiàng)目pipenv。然而,為Python 3.5.x的只有我得到這樣的錯(cuò)誤,當(dāng)我嘗試用Vim編輯8(通過(guò)安裝的文件PPA)在激活的virtualenv:"test.py" 49L, 1434CError detected while processing function jedi#init_python[4]..<SNR>48_init_python[27]..jedi#setup_python_imports:line 25:Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/imp.py", line 19, in <module> from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/importlib/__init__.py", line 57, in <module> import types File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/types.py", line 166, in <module> import functools as _functools File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/functools.py", line 23, in <module> from weakref import WeakKeyDictionary File "/home/user/.local/share/virtualenvs/test-AYf6DmHL/lib/python3.5/weakref.py", line 12, in <module> from _weakref import (ImportError: cannot import name '_remove_dead_weakref'這個(gè)問(wèn)題似乎影響了所有與 python 相關(guān)的 Vim 插件。對(duì)于其他 Python 版本(例如 3.6.x、3.7.x),不會(huì)發(fā)生這種情況。什么可能導(dǎo)致這個(gè)問(wèn)題?更新:似乎當(dāng)我在 3.5.x virtualenv 中運(yùn)行 Vim 時(shí),Vim 的解釋器sys.path會(huì)以某種方式更新。例如,這是:py3 import sys; print(sys.path)3.6.0 virtualenv 內(nèi)部的輸出:['/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages', '_vim_path_']這是 3.5.3:Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/testuser/.local/share/virtualenvs/venv-3.5-8feRiT5s/lib/python3.5/imp.py", line 19, in <module> from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name File "/home/testuser/.local/share/virtualenvs/venv-3.5-8feRiT5s/lib/python3.5/importlib/__init__.py", line 57, in <module> import types該問(wèn)題可以在ubuntu:16.04docker 容器中重現(xiàn)。
查看完整描述