解决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文件比较示例分享
Jan 10 Python
Python使用htpasswd实现基本认证授权的例子
Jun 10 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
不可错过的十本Python好书
Jul 06 Python
Python操作mongodb的9个步骤
Jun 04 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
Python理解递归的方法总结
Jan 28 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 Python
python numpy中setdiff1d的用法说明
Apr 22 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
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
Python多线程编程(五):死锁的形成
2015/04/05 Python
python2.7的编码问题与解决方法
2016/10/04 Python
python线程中的同步问题及解决方法
2019/08/29 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
python3跳出一个循环的实例操作
2020/08/18 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
关于责任的演讲稿
2014/05/20 职场文书
廉洁自律证明
2015/06/24 职场文书
css3带你实现3D转换效果
2022/02/24 HTML / CSS
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS