解决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中字典和JSON互转操作实例
Jan 19 Python
Python常用内置函数总结
Feb 08 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
windows10环境下用anaconda和VScode配置的图文教程
Mar 30 Python
python thrift 实现 单端口多服务的过程
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
截获网站title标签之家内容的例子
2006/10/09 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
JS实现随机点名器
2020/04/12 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
python 控制语句
2011/11/03 Python
python简单实现获取当前时间
2016/08/27 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
python能做哪方面的工作
2020/06/15 Python
解决python运行效率不高的问题
2020/07/20 Python
python实现邮件循环自动发件功能
2020/09/11 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
拓展培训心得体会
2014/01/04 职场文书
职代会闭幕词
2015/01/28 职场文书
作息时间调整通知
2015/04/22 职场文书
公司员工离职感言
2015/08/03 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript
Python软件包安装的三种常见方法
2022/07/07 Python