超时问题
报错
在做人脸识别的时候,要用到opencv-contrib-python,此时已经下载了opencv-python。
在pycharm终端输入:
pip install opencv-contrib-python
发现速度很慢,而且过了一会下载失败,报错:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool
查了一下应该是连接超时了,解决方法是手动延迟检测时间。
解决
用win+r,打开cmd,输入
pip --default-timeout=1000 install -U opencv-contrib-python
–default-timeout 参数,就是设置连接超时最大时间。
等一会显示下载成功
参考资料:https://blog.csdn.net/sinat_36342564/article/details/125909237
下载后无法使用cv2
报错
下载完成后运行一下原来的py文件,居然报错了:
AttributeError: partially initialized module ‘cv2’ has no attribute ‘gapi_wip_gst_GStreamerPipeline’ (most likely due to a circular import)
解决
查资料是版本不匹配的问题,尝试卸载掉刚下载的opencv-contrib-python
pip uninstall opencv-contrib-python==4.7.0.68
卸载成功:
尝试运行之前的代码,居然还报错,痛苦
查了很久资料,不知道问题在哪。。迷茫,看到有博主说是环境的问题,检查了一下感觉我的问题应该不是这个(毕竟之前也可以用)
参考:https://blog.csdn.net/weixin_43898924/article/details/108916462
https://blog.csdn.net/weixin_42871236/article/details/115951989
然后一怒之下去升级了opencv
pip install --user --upgrade opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
然后又试了一下,居然又不报错了
好吧,本来是打算卸载opencv-contrib-python,再下一个和原来opencv匹配的opencv-contrib。既然opencv已经升级了,就重复前面操作,再下一次最新版的opencv-contrib-python。
再运行一下原来代码,也是成功的。
所以之前报错原因应该是版本不匹配,需要下相同的版本。
下载成功后用不了face
报错
opencv和opencv-contrib安装好了以后,加载了一个识别器
face_recognizer = cv2.face.EigenFaceRecognizer_create()
但是报错了
解决
先把下好的opencv-contrib-python给删了(又一次我哭死),再cmd输入
pip install opencv-contrib-python --user
之后再运行不报错。一定要加--user,不知道原理是啥。