问题解决:Spyder不支持OpenCV模块代码提示

 

最近使用 Python(x,y)+Spyder 进行Python相关开发,在测试一些基本模块时出现了一点小问题,这里记录下一种解决方式。Spyder是一款面向科学计算的Python交互开发环境。集成了pyflakespylintIPython等工具,具备编辑、调试、命令交互、在线帮助文档、代码分析等功能,是Python(x,y)发行版推荐使用的开发工具之一。

在使用中遇到的问题是,Spyder的代码完成功能不支持某些编译模块(.pyd后缀),如OpenCVPython模块cv/cv2,在编写脚本文件时,在已存在import cv&import cv2的前提下,输入cv. 无法弹出显示相关成员函数列表&代码完成提示。同样的操作在SpyderConsole窗口和IPython console窗口都能正常工作,如图一所示,在Spyder 的 Console窗口中cv2模块的代码完成提示。(事实上,大多数支持Python的编辑器都存在类似问题,这是因为多数编译器对编译模块的代码完成支持不理想。)

这里写图片描述

上网查找了一下,在Google Code将该问题记载在 Issue 1469: Add support to get code completions for compiled modules (e.g. OpenCV)。8楼的给出了一个建议,大致的意思是把当前使用的代码完成库从Rope换成Jedi可以完美解决这个问题。而7楼则给出了另一个简单的解决方法,这也是我成功解决问题所用的方法。

这里写图片描述

尝试了一下,问题得到了解决,具体的操作如下:

1.找到 module_completion.py 文件,2.25及之前的版本位于Python目录/Lib/site-packages/spyderlib/utils/路径,2.25之后的版本位于Python目录/Lib/site-packages/spyderlib/utils/introspection/。将cv和cv2添加到 module_completion.py 文件第274行的 mods 变量中,保存文件:

这里写图片描述

2.修改后,删除同目录下的 module_completion.pyc 文件,使得修改后的 module_completion.py 文件生效。

3.进入用户目录下的Users/用户名/.spyder2/db,删除目录中的submodules文件。

4.重启Spyder,enjoy it。

通常情况下,若需要添加其他的编译模块,均可按照以上的方法进行添加,尽管该方法比较不人性化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值