解决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实现将n个点均匀地分布在球面上的方法
Mar 12 Python
浅谈django orm 优化
Aug 18 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
浅析python内置模块collections
Nov 15 Python
python做接口测试的必要性
Nov 20 Python
python判断链表是否有环的实例代码
Jan 31 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
Python标准库shutil模块使用方法解析
Mar 10 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
Python如何输出整数
Jun 07 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 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使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Python使用python-docx读写word文档
2019/08/26 Python
印度在线杂货店:bigbasket
2018/08/23 全球购物
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
安全生产检查通报
2014/01/29 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
继承权公证书
2014/04/09 职场文书
大学毕业寄语大全
2014/04/10 职场文书
5s推行计划书
2014/05/06 职场文书
化工实习心得体会
2014/09/09 职场文书
2014年医生工作总结
2014/11/21 职场文书
七一活动主持词
2015/06/29 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle