1.问题描述
最近入坑了cv,那必然要涉及到了OpenCV,在pycharm中下载了OpenCV-python,正要开始愉快搬砖,突然发现代码补全没了!强迫症的我怎么能忍受这个呢!!!代码无法补全问题如下
于是我开始全网搜索,找了中文网站像CSDN或者知乎等等,上面方法都试了但是都不行(不过下面评论说也有解决的,可能电脑环境不同),然后我又去搜索了Stack Overflow、quora以及jetbrain自己的问答版块,终于我解决了!!!想着分享下方便后来一样问题的人来进行解决。
2.解决方法
特别说明,不保证肯定能解决,但是我这边的方法肯定是基本包罗网上所有的解决方法,并且我个人都尝试过的
2.1 import解决法
在Stack Overflow和CSDN上出现最多的解决方案便是通过import方法解决,这也是最简单的解决方案,方案如下
from cv2 import cv2
# 或者
import cv2.cv2 as cv
这两种方法本质上都是一致的,解决pycharm无法所引导cv的二进制文件,确实有一定的帮助,但是结果并不理想(这里不确定是不是其他人都跟我一样,建议试一下即可),以下是结果
可以看到是有应用出现了,但是结果很不理想,如果有小伙伴可以接受,那也无所谓了,但是强迫症晚期无法忍受!!
2.2 修改__init__文件
在CSDN上也出现了这个解决方案,就是百度出来最上面那一篇,但是我试了下没有用(不过下面评论又说解决掉),方案如下
# 找到OpenCV的安装目录
# 我的是E:\桌面\cv-learning\venv\Lib\site-packages\cv2
# 打开__init__.py文件,将文件内容修改成以下,建议只把原来的注释掉
import sys
import os
import importlib
os.environ["PATH"] += os.pathsep + os.path.dirname(os.path.realpath(__file__))
from .cv2 import *
globals().update(importlib.import_module('cv2.cv2').__dict__)
2.3 添加dll文件
这个方法是在Stack Overflow上看到的,不过也没用·····
找到目录下E:\桌面\cv-learning\venv\Lib\site-packages\cv2\cv2.cp37-win_amd64.pyd文件将其复制到python安装目录下中Dlls目录中即可
2.4 修改pycharm的扫描路径
pycharm每次启动都会扫描一遍当前的库文件,所以我们添加即可,不过这个我试了也没用,方案如下
打开file -> setting -> project interpreter->打开右边小齿轮
选择show all
选择到当前的文件目录,点击右边工具的最下面一个
再点击+,把OpenCV的安装目录添加到其中即可
2.5 最终解决法
通过这个方法我最终解决了这个问题,来源于jetbrain的问答区,方案如下:
新建一个工程文件夹,确保路径无中文字符
我原来的目录是
修改到无中文字符之后
结果为
关键解决方案是确保python、OpenCV以及当前工程文件的文件目录中不能出现中文,一个字都不能,不然就要重装
记住查看当前解释器的路径,这里不能有中文
也就是上图中的有python图标的那个框框里面的路径,里面不能有中文
3.结语
花了整整一个上午,半点代码没瞎,点个赞,秋梨膏!