PyCharm - 解决导入 cv2 后无法代码补全的问题
问题描述
笔者先是在终端安装了 opencv-python
最新版本(4.7.0.72),并在文件头导入了 cv2
。
但是发现 cv2 的一些全局变量与函数签名无法不全,PyCharm 想要看某个函数的定义文档也是跳转不过去。不过实际调用是可以的,执行结果也是正常的。
问题分析
既然实际功能不受影响,只是 IDE 找不到定义,因此无法进行解析函数签名,代码补全,来源跳转,函数文档生成等操作。
解决办法
按 ctrl
+alt
+s
或 File - Settings
打开设置页面,找到 Project - Python interpreter
页面。[^1]
-
在上方的 Python 解释器选择框,点击框里面右边的下三角,选择
Show All
。
-
在弹出的二级窗口中,依次点选当前使用的解释器名称,再点击树形文件结构层次图标(Show Interpreter Paths) 将会显示现有的解释器 Paths。
-
我们将
cv2
在 conda 虚拟环境中的安装路径添加进来。
-
最后,从内而外,逐个点 OK 保存设置并关闭窗口,PyCharm 会自行更新
cv2
索引和解析代码骨架(skeletons)。
-
最后,等后台更新任务跑完,再回到代码编辑页面,可以看到
cv2
的函数名下面没有波浪线,而且cv2
符号补全、定义跳转也好使了。
Tips:
操作完成后若依然还是不能自动补全,建议使用File - Invalidate Caches
清理缓存并重启编辑器。
文章小结
本文提供一个关于 OpenCV Python 库代码可正常执行,但 IDE 却不能代码补全的问题的解决思路。由于 Python 解释器 Paths 设置页面藏得比较深,请按截图依次进行操作。另外,此处的设置是具体到每个解释器的,因此没法直接写入到环境变量中,需要单独进行配置,后续若有更好的方案再做更新。