vim和conque gdb插件的问题

时间:2015-10-27 07:41:16

标签: python vim plugins gdb

我们有几个开发主机,主要是基于红帽的。在除了两个之外的所有这些中,我可以与conque gdb一起运行而没有问题。但是,在两台主机上,我在启动gdb时得到了这个:

Error detected while processing function conque_gdb#load_python:
line    6:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/myuser/.vim/autoload/conque_gdb/conque_gdb.py", line 39, in <module>
    class RegisteredBpDict(collections.MutableMapping):
AttributeError: 'module' object has no attribute 'MutableMapping'
Press ENTER or type command to continue

这是在solaris 10,vim 7.4,python版本2.5.1上。

我在vhat 7.0和python 2.4.3的redhat 5.4上得到了相同的结果。

例如在redhat 5.7上使用vim 7.4和python 2.4.3。

它似乎与python相关,但我真的完全陌生并且丢失了python,所以我不知道根本原因是什么。在非工作主机上,我甚至重新编译了一些较新的python版本(例如2.7.10),但没有成功。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是检查$PATH中的Python二进制文件是否实际包含您的Vim插件尝试调用的模块和属性。

在无效的主机上运行python,并使用hasattr()检查模块/属性:

>>> import collections; hasattr(collections, "MutableMapping")
True

如果结果为False,则$PATH中Python使用的库不包含插件所需的必要依赖项。

根据评论中的讨论,这可以通过确保使用正确的库编译Python来解决,这是Vim使用的Python版本。