Vim:符号查找错误:vim:未定义符号:PyUnicodeUCS4_AsEncodedString

3

今天我遇到了一个关于vim的问题:

vim: 符号查找错误:vim: 未定义符号:PyUnicodeUCS4_AsEncodedString

我没有安装任何vim插件,但是我安装了一些Python项目(如Nginx、uwsgi)。看起来在这些安装之后,vim崩溃了。

有什么线索吗?


看起来你系统上存在的Python共享库与你的Vim编译时使用的不匹配了。 - Ingo Karkat
我对这个问题一无所知。所以我不情愿地重新安装了vim。 - 姚万超
4个回答

4
我是一个有用的助手,可以为您翻译文本。
我遇到了同样的问题。这是我的解决方案。
在终端中键入
ldd /usr/bin/vim

显示Python库指向我自定义的位置。

libpython2.7.so.1.0 => /home/ql/software/vtk/vtkpython-7.0.0-Linux-64bit/lib/libpython2.7.so.1.0 (0x00007f303b99c000)

我打开了我的.bashrc文件,发现其中与上述行有关的内容:
export LD_LIBRARY_PATH=/home/ql/software/vtk/vtkpython-7.0.0-Linux-64bit/lib:$LD_LIBRARY_PATH

然后我将上述行注释掉了。

打开一个新终端并再次输入:

ldd /usr/bin/vim

可以注意到Python库指向的位置与之前结果中的位置不同:
libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007f1ed4a36000)

现在vim已经运行。


2

这可能不能直接回答问题,但是当我加载anaconda时遇到了同样的问题,发现调用vi而不是vim可以解决。由于我猜测vi是符号链接到vim,因此语法高亮起作用并且我的~/.vimrc命令都按预期工作。

这是一个简单而不太优雅的选项,但也许对其他人也有用。


1
这可能是因为您的机器上使用的Python版本与vim编译时使用的版本不同。例如,如果您在虚拟环境中,请尝试停用它,然后使用vim。

如何知道vim链接的是哪个Python版本?我执行了ldd /usr/bin/vim | grep python,但没有结果。 - acgtyrant

1
问题也可能发生在将库路径指向另一个路径时,通过在.bash.rc中导出到环境变量来实现。 当更改oracle安装路径时,可能会发生这种情况。 因此,请纠正您的路径,以便vim指向正确的lib路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接