问题解决:Spyder不支持OpenCV模块代码提示
在使用中遇到的问题是,Spyder
的代码完成功能不支持某些编译模块(.pyd后缀),如OpenCV
的Python
模块cv/cv2
,在编写脚本文件时,在已存在import cv
&import cv2
的前提下,输入cv.
无法弹出显示相关成员函数列表&代码完成提示。同样的操作在Spyder
的Console
窗口和IPython console
窗口都能正常工作,如图一所示,在Spyder
的 Console
窗口中cv2
模块的代码完成提示。(事实上,大多数支持Python
的编辑器都存在类似问题,这是因为多数编译器对编译模块的代码完成支持不理想。)
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。
通常情况下,若需要添加其他的编译模块,均可按照以上的方法进行添加,尽管该方法比较不人性化。