解决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实现对PPT文件进行截图操作的方法
Apr 28 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
Python爬取京东的商品分类与链接
Aug 26 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
Python编程中类与类的关系详解
Aug 08 Python
python实现批量修改服务器密码的方法
Aug 13 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
python logging 日志的级别调整方式
Feb 21 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
Python中可变和不可变对象的深入讲解
Aug 02 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
jquery.flot.js简单绘制折线图用法示例
2017/03/13 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
Python读取网页内容的方法
2015/07/30 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
2014年廉洁自律承诺书
2014/05/26 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
导游词之张家口
2019/12/13 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电
python函数的两种嵌套方法使用
2022/04/02 Python