您的位置:首页 > 编程语言

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

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

在使用中遇到的问题是,
Spyder
的代码完成功能不支持某些编译模块(.pyd后缀),如
OpenCV
Python
模块
cv/cv2
,在编写脚本文件时,在已存在
import cv
&
import cv2
的前提下,输入
cv.
无法弹出显示相关成员函数列表&代码完成提示。同样的操作在
Spyder
Console
窗口和
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。

通常情况下,若需要添加其他的编译模块,均可按照以上的方法进行添加,尽管该方法比较不人性化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: