解决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抓取网页时字符集转换问题处理方案分享
Jun 19 Python
python编写简单爬虫资料汇总
Mar 22 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
Python 通配符删除文件的实例
Apr 24 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 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中10个不常见却非常有用的函数
2010/03/21 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python构造函数及解构函数介绍
2015/02/26 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
opencv python图像梯度实例详解
2020/02/04 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
中学生获奖感言
2014/02/04 职场文书
中专自我鉴定
2014/02/05 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
优秀班组申报材料
2014/12/25 职场文书
工程部岗位职责范本
2015/04/11 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
高中生物教学反思
2016/02/20 职场文书
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers