解决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之眼花缭乱的运算符
Sep 14 Python
python访问类中docstring注释的实现方法
May 04 Python
Python 模拟员工信息数据库操作的实例
Oct 23 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
Python打印输出数组中全部元素
Mar 13 Python
使用python编写监听端
Apr 12 Python
python绘制散点图并标记序号的方法
Dec 11 Python
python 实现矩阵填充0的例子
Nov 29 Python
Django中的session用法详解
Mar 09 Python
jupyter notebook 增加kernel教程
Apr 10 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
如何用 Python 子进程关闭 Excel 自动化中的弹窗
May 07 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
用来解析.htpasswd文件的PHP类
2012/09/05 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
javascript 拖动表格行实现代码
2011/05/05 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
python正则分析nginx的访问日志
2017/01/17 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
python datetime中strptime用法详解
2019/08/29 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
python enumerate内置函数用法总结
2020/01/07 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
最新会计专业求职信范文
2014/01/28 职场文书
小学老师寄语大全
2014/04/04 职场文书
酒后驾车标语
2014/06/30 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
湘江北去观后感
2015/06/15 职场文书
初中同学会致辞
2015/08/01 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
python b站视频下载的五种版本
2021/05/27 Python
Javascript之datagrid查询详解
2021/09/15 Javascript
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS