使用 Jedi-vim 自动补全给出错误
Autocompletion with Jedi-vim gives Error
-- Omni completion (^O^N^P) Pattern not found
这是我查看 Vim 中的 :messages 时遇到的错误。
Please install Jedi if you want to use jedi-vim.
The error was: dlopen(/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder^@ Referenced fro
m: /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so^@ Expected in: flat namespace^@ in /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework
/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Press ENTER or type command to continue
但我已经使用 pip 安装了 Jedi
$ pip freeze
jedi==0.9.0
vboxapi==1.0
我正在尝试从 vim 运行 :python import jedi;
并且出现以下错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/jedi/__init__.py", line 41, in <module>
from jedi.api import Script, Interpreter, NotFoundError, set_debug_function
File "/usr/local/lib/python2.7/site-packages/jedi/api/__init__.py", line 16, in <module>
from jedi.parser import Parser, load_grammar
File "/usr/local/lib/python2.7/site-packages/jedi/parser/__init__.py", line 22, in <module>
from jedi.parser import tokenize
File "/usr/local/lib/python2.7/site-packages/jedi/parser/tokenize.py", line 16, in <module>
from io import StringIO
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
Referenced from: /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Expected in: flat namespace
in /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Python 从我的命令行显示以下版本
>>> import sys
>>> sys.version
'2.7.12 (default, Jun 29 2016, 14:05:02) \n[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)]'
>>>
但是从Vim如果运行下面的命令
:python import sys; print sys.version
输出
2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)]
现在如何更新 vim 正在使用的 python? / 这里到底发生了什么,我该怎么做才能解决它?
我安装了带有病原体的 jedi-vim,现在可以使用了。
pip install --user jedi
cd ~/.vim/bundle/
git clone https://github.com/davidhalter/jedi-vim.git
你也可以运行 这个:
sudo apt-get install vim-python-jedi
这应该有帮助
发生这种情况是因为 Mac 安装了 2 个版本 python。
默认情况下位于 /usr/bin 目录中的是 2.7.10 版本。我使用 brew 安装的一个在 /usr/local/bin 目录中,是 2.7.12 版本。
Vim 使用的是 2.7.10 版本,但在 brew 安装软件包的文件夹中查找软件包。
所以我做了一个 brew uninstall python,一切正常。
(但是我丢失了 pip 和所有通过 pip 安装的包。我应该更加小心)
卸载对我来说不是解决方案,vim 一开始就抱怨,没有找到 python 支持
我做了以下事情:
cd /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/
mv _io.so _io.so.orig
cp /usr/lib/python2.7/lib-dynload/_io.so ./
(我从源代码构建了 vim8 - 来自 github。com/vim/vim。git )
./configure --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config/
make
sudo make install)
至少对于 Ubuntu 16.04,这是因为默认的 Vim 包是针对 Python 3.5 编译的。要修复此错误,除了 Jedi 的相关包之外,您还需要安装与 Vim 相关的所有内容并安装以下包:
sudo apt-get install vim-addon-manager vim-common vim-gnome-py2 \
vim-gtk3-py2 vim-gui-common vim-nox-py2 vim-python-jedi vim-runtime
-- Omni completion (^O^N^P) Pattern not found
这是我查看 Vim 中的 :messages 时遇到的错误。
Please install Jedi if you want to use jedi-vim.
The error was: dlopen(/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder^@ Referenced fro
m: /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so^@ Expected in: flat namespace^@ in /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework
/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Press ENTER or type command to continue
但我已经使用 pip 安装了 Jedi
$ pip freeze
jedi==0.9.0
vboxapi==1.0
我正在尝试从 vim 运行 :python import jedi;
并且出现以下错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/jedi/__init__.py", line 41, in <module>
from jedi.api import Script, Interpreter, NotFoundError, set_debug_function
File "/usr/local/lib/python2.7/site-packages/jedi/api/__init__.py", line 16, in <module>
from jedi.parser import Parser, load_grammar
File "/usr/local/lib/python2.7/site-packages/jedi/parser/__init__.py", line 22, in <module>
from jedi.parser import tokenize
File "/usr/local/lib/python2.7/site-packages/jedi/parser/tokenize.py", line 16, in <module>
from io import StringIO
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
Referenced from: /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Expected in: flat namespace
in /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Python 从我的命令行显示以下版本
>>> import sys
>>> sys.version
'2.7.12 (default, Jun 29 2016, 14:05:02) \n[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)]'
>>>
但是从Vim如果运行下面的命令
:python import sys; print sys.version
输出
2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)]
现在如何更新 vim 正在使用的 python? / 这里到底发生了什么,我该怎么做才能解决它?
我安装了带有病原体的 jedi-vim,现在可以使用了。
pip install --user jedi
cd ~/.vim/bundle/
git clone https://github.com/davidhalter/jedi-vim.git
你也可以运行 这个:
sudo apt-get install vim-python-jedi
这应该有帮助
发生这种情况是因为 Mac 安装了 2 个版本 python。 默认情况下位于 /usr/bin 目录中的是 2.7.10 版本。我使用 brew 安装的一个在 /usr/local/bin 目录中,是 2.7.12 版本。
Vim 使用的是 2.7.10 版本,但在 brew 安装软件包的文件夹中查找软件包。 所以我做了一个 brew uninstall python,一切正常。
(但是我丢失了 pip 和所有通过 pip 安装的包。我应该更加小心)
卸载对我来说不是解决方案,vim 一开始就抱怨,没有找到 python 支持 我做了以下事情:
cd /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/
mv _io.so _io.so.orig
cp /usr/lib/python2.7/lib-dynload/_io.so ./
(我从源代码构建了 vim8 - 来自 github。com/vim/vim。git )
./configure --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config/
make
sudo make install)
至少对于 Ubuntu 16.04,这是因为默认的 Vim 包是针对 Python 3.5 编译的。要修复此错误,除了 Jedi 的相关包之外,您还需要安装与 Vim 相关的所有内容并安装以下包:
sudo apt-get install vim-addon-manager vim-common vim-gnome-py2 \
vim-gtk3-py2 vim-gui-common vim-nox-py2 vim-python-jedi vim-runtime