Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python vim和conque gdb插件的问题_Python_Vim_Plugins_Gdb - Fatal编程技术网

Python vim和conque gdb插件的问题

Python vim和conque gdb插件的问题,python,vim,plugins,gdb,Python,Vim,Plugins,Gdb,我们有几个开发主机,大多数是基于red hat的。除了两个,我可以让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> F

我们有几个开发主机,大多数是基于red hat的。除了两个,我可以让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
处理函数conque_gdb#load_python时检测到错误: 第6行: 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/home/myuser/.vim/autoload/conque_gdb/conque_gdb.py”,第39行,在 类RegisteredBpDict(collections.MutableMapping): AttributeError:“模块”对象没有属性“可变映射” 按ENTER键或键入命令继续 这是在solaris 10、vim 7.4和python版本2.5.1上实现的

我在Redhat5.4、Vim7.0和Python2.4.3上得到了同样的结果

例如,它可以在Redhat5.7上使用Vim7.4和Python2.4.3

这似乎与python有关,但我对python完全不熟悉,所以我不知道根本原因是什么。在不工作的主机上,我甚至重新编译了一些较新的python版本(例如2.7.10),但没有成功


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

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

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

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


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

您应该检查模块
集合
是否包含
可变映射
。在不工作的主机上运行
python
,并检查导入集合的结果;hasattr(集合,“可变映射”)。如果设置为False,则
$PATH
中默认Python使用的库不包含插件所需的依赖项。对于其他好奇的人,可以在这里找到源代码:好的,正如预期的那样,在非工作主机上我将得到false,而在工作主机上我将得到true。现在我该如何解决这个问题?正如我所说,我不熟悉python,我不知道如何修复库。好的,我必须补充,在非工作主机上,我还有一个新编译的python 2.7.10,它为上述测试提供了
true
。然而,即使我把它放在我的
$PATH
中,我仍然会在vim中得到这个错误,所以看起来vim/conque_gdb没有使用我路径中的python?好的,实际上我只是能够通过使用较新的单独编译的python版本重新编译vim来解决这个问题。如果你添加你的提示作为一个单独的答案,我将接受它。太好了,很高兴听到我的提示有用!添加了一个答案,谢谢。为了提供更多提示,以防其他人遇到这个问题:vim拒绝使用我单独的python构建,并且始终使用系统默认值。我必须为vim提供一个具体的python路径来使用这个特定版本进行编译,比如:
vi_cv_path_python=/pythonpath/bin/python./configure——启用pythoninterp
注意,
vi_cv_path_python
变量包含到
python
二进制文件的路径。
>>> import collections; hasattr(collections, "MutableMapping")
True