我们有几个开发主机,主要是基于红帽的。在除了两个之外的所有这些中,我可以与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),但没有成功。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
解决此问题的一种方法是检查$PATH
中的Python二进制文件是否实际包含您的Vim插件尝试调用的模块和属性。
在无效的主机上运行python
,并使用hasattr()
检查模块/属性:
>>> import collections; hasattr(collections, "MutableMapping")
True
如果结果为False
,则$PATH
中Python使用的库不包含插件所需的必要依赖项。
根据评论中的讨论,这可以通过确保使用正确的库编译Python来解决,这是Vim使用的Python版本。