解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)


Posted in Python onMarch 05, 2020

发现问题

当我用pip安装好opencv-pyton后,我激动得在python项目中导入cv2
就像这样:

import cv2 as cv

but…
码代码时竟然没有自动补全!!!这我还能忍,可是CTRL+左键竟然不能看源码!!!!!!就像这样:

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

这我就受不了了。于是开始找解决方法

解决问题

查找解决方法,
有的说要将cv2.cp36-win_amd64.pyd文件挪到site-packages下;
有的说要修改_init_.py文件
有的说…

直到我看到https://segmentfault.com/q/1010000008971601这篇文章

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

于是突然顿悟!

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

原来真正的实现opencv功能的cv2模块是在cv2/data文件夹下

而cv2下的_init_.py文件内描述的也很清楚

import importlib
from .cv2 import *
from .data import *

# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)

它的目的就是将cv2/data/下的真正的cv2功能模块放在cv2目录下,也就意味着
变成了这种形式:cv2/cv2

所以你在导入cv2模块儿时要这样做

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

正确的做法

import cv2.cv2 as cv

自动提示的功能出现了。

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

CTRL+鼠标左键查看源码的功能也回来了。

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

针对一些疑惑进行可能的解答,也不知道对不对。

由于我之前升级过IDE,所以这个项目是我从外部导入的,首先我为这个项目选择python解释器路径,然后就会出现下图的进度条。(这个项目在构建之初,用virtualenv建立了一个独立的环境,所以python解释器选择的是项目路径下的。)

库文件在刚刚被添加到项目中时,pycharm会针对这个库文件,构建索引(building index)。然后会显示一个进度条,在进度条走完之前,使用这个库中的方法确实会出现无法自动提示的问题。

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

等待进度条走完,也就是python环境中的库都被构建索引,然后再使用库中的方法,自动提示就有了。

这是我新建的.py文件,然后进行的测试

解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)

总结

到此这篇关于解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)的文章就介绍到这了,更多相关pycharm opencv-python导入cv2无法自动补全内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用xmlrpc实例讲解
Dec 17 Python
Python利用Beautiful Soup模块创建对象详解
Mar 27 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
Python matplotlib画图与中文设置操作实例分析
Apr 23 Python
新手入门Python编程的8个实用建议
Jul 12 Python
用Python写一个自动木马程序
Sep 17 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
Python项目跨域问题解决方案
Jun 22 Python
如何清空python的变量
Jul 05 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 #Python
python环境下安装opencv库的方法
Mar 05 #Python
Python序列化pickle模块使用详解
Mar 05 #Python
Window系统下Python如何安装OpenCV库
Mar 05 #Python
Python bytes string相互转换过程解析
Mar 05 #Python
Python 从attribute到property详解
Mar 05 #Python
Python+OpenCV实现图像的全景拼接
Mar 05 #Python
You might like
如何在PHP中使用Oracle数据库(3)
2006/10/09 PHP
优化PHP代码的53条建议
2008/03/27 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
php实现httpRequest的方法
2015/03/13 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
What is view? why do we have view?
2012/06/22 面试题
C#如何进行LDAP用户校验
2012/11/21 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
大学毕业生自我鉴定
2013/11/05 职场文书
策划助理岗位职责
2013/11/18 职场文书
南京青奥会口号
2014/06/12 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
通用员工手册范本
2015/05/14 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
Vue h函数的使用详解
2022/02/18 Vue.js
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js