【发布时间】:2015-10-27 07:41:15
【问题描述】:
我们有几个开发主机,主要是基于红帽的。在除了两个之外的所有这些上,我可以毫无问题地将 vim 与 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 上。
我在 redhat 5.4 和 vim 7.0 和 python 2.4.3 上得到了同样的结果。
例如在 redhat 5.7 上使用 vim 7.4 和 python 2.4.3。
这似乎与python有关,但我真的完全不熟悉并且迷失了python,所以我不知道根本原因是什么。在非工作主机上,我什至重新编译了一些较新的 python 版本(例如 2.7.10),但没有成功。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
你应该检查模块
collections是否包含MutableMapping。在不工作的主机上运行python并检查import collections; hasattr(collections, "MutableMapping")的结果。如果你得到 False,$PATH中默认 Python 使用的库不包含插件所需的必要依赖项。对于其他好奇的人,可以在这里找到源代码:gh: vim-scripts/Conque-GDB -
好的,正如预期的那样,在非工作主机上我会得到假,而在工作主机上我会得到真。现在我该如何解决这个问题?正如我所说,我不熟悉python,我不知道如何修复库。
-
好吧,我必须补充一下,在非工作主机上,我还有一个新编译的 python 2.7.10,它为上述测试提供了
true。但是,即使我把它放在我的$PATH中,我仍然会在 vim 中收到这个错误,所以这似乎是 vim/conque_gdb not 使用我路径中的 python? -
好吧,实际上我只是能够通过使用更新的、单独编译的 python 版本重新编译 vim 来解决这个问题。如果您将提示添加为单独的答案,我会接受。
-
太好了,很高兴听到我的提示有用!已添加答案,谢谢。