PyCharm中OpenCV函数引用缺失,自动补全功能失效求助
我之前也碰到过一模一样的问题!明明代码跑起来完全正常,但PyCharm就是认不出OpenCV的函数,自动补全直接失效,太闹心了。结合你用的OpenCV 3.4.0、Python 3.6.4和PyCharm环境,给你几个亲测有效的解决办法:
解决PyCharm无法识别OpenCV函数引用的方案
确认PyCharm使用的解释器正确
有时候PyCharm默认加载的不是你安装了opencv-python的那个Python环境。你可以通过以下步骤检查:- 点击顶部菜单栏的
File > Settings > Project: [你的项目名称] > Python Interpreter - 查看已安装包列表,确认
opencv-python(版本3.4.0)在列表里。如果没有,点击右上角的齿轮图标选择Add,找到你安装Python 3.6.4的路径,选中对应解释器添加后切换过来即可。
- 点击顶部菜单栏的
清除PyCharm缓存并重启
PyCharm的索引缓存偶尔会出现异常,导致静态分析失效。操作起来很简单:- 点击
File > Invalidate Caches... - 在弹出的窗口里勾选
Invalidate and Restart,等待PyCharm重启并重新构建项目索引。这个方法解决过我绝大多数的类似问题。
- 点击
手动修改OpenCV的__init__.py文件
早期版本的opencv-python包,cv2文件夹下的__init__.py是通过动态方式加载模块的,PyCharm的静态分析工具没法识别这种动态导入。你可以这么操作:- 找到你Python环境下site-packages里的
cv2文件夹 - 打开里面的
__init__.py文件,备份原内容后,把动态加载的代码替换成:from .cv2 import * - 保存文件后重启PyCharm,应该就能正常识别函数并启用自动补全了。
- 找到你Python环境下site-packages里的
安装对应版本的opencv-contrib-python
你可以尝试安装和当前OpenCV版本一致的opencv-contrib-python包,打开命令提示符执行:pip install opencv-contrib-python==3.4.0有些时候contrib版本的包包含更完善的静态索引信息,能被PyCharm更好地识别。
内容的提问来源于stack exchange,提问作者prog




