解决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脚本和ADB命令实现卸载App
Feb 10 Python
python机器学习实战之树回归详解
Dec 20 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
用Python生成HTML表格的方法示例
Mar 06 Python
Python urllib.request对象案例解析
May 11 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Python基于numpy模块实现回归预测
May 14 Python
jupyter notebook的安装与使用详解
May 18 Python
Python预测分词的实现
Jun 18 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禁止页面缓存的代码
2011/10/23 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
DOM相关内容速查手册
2007/02/07 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
Python运算符重载用法实例
2015/05/28 Python
Ubuntu下安装PyV8
2016/03/13 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python中url标签使用知识点总结
2020/01/16 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
公务员总结性个人自我评价
2013/12/05 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
合作经营协议书
2014/04/17 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
阿甘正传观后感
2015/06/01 职场文书