解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
作者:枪枪枪 发布时间:2023-08-24 00:25:21
发现问题
当我用pip安装好opencv-pyton后,我激动得在python项目中导入cv2
就像这样:
import cv2 as cv
but…
码代码时竟然没有自动补全!!!这我还能忍,可是CTRL+左键竟然不能看源码!!!!!!就像这样:
这我就受不了了。于是开始找解决方法
解决问题
查找解决方法,
有的说要将cv2.cp36-win_amd64.pyd文件挪到site-packages下;
有的说要修改_init_.py文件
有的说…
直到我看到https://segmentfault.com/q/1010000008971601这篇文章
于是突然顿悟!
原来真正的实现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模块儿时要这样做
正确的做法
import cv2.cv2 as cv
自动提示的功能出现了。
CTRL+鼠标左键查看源码的功能也回来了。
针对一些疑惑进行可能的解答,也不知道对不对。
由于我之前升级过IDE,所以这个项目是我从外部导入的,首先我为这个项目选择python解释器路径,然后就会出现下图的进度条。(这个项目在构建之初,用virtualenv建立了一个独立的环境,所以python解释器选择的是项目路径下的。)
库文件在刚刚被添加到项目中时,pycharm会针对这个库文件,构建索引(building index)。然后会显示一个进度条,在进度条走完之前,使用这个库中的方法确实会出现无法自动提示的问题。
等待进度条走完,也就是python环境中的库都被构建索引,然后再使用库中的方法,自动提示就有了。
这是我新建的.py文件,然后进行的测试
来源:https://blog.csdn.net/az9996/article/details/90546827


猜你喜欢
- 前言:大家好,今天和大家分享自己总结的6个常用的 Python 数据处理代码,对于经常处理数据的coder最好熟练掌握。1、选取有空值的行在
- 前言使用Python发邮件,是个简单的话题,可是如何可以优雅的轻松的群发邮件,并附加PDF附件,是很多小伙伴的日常工作,却也是很多小白需要费
- 简介集合对象 set 是由具有唯一性的可哈希对象组成的无序多项集,如 list 不能哈希因此,不能作为 set 的一项。set 的常见用途包
- 手残删除python补救新建文件夹,下载下面的依赖wget http://vault.centos.org/7.2.1511/o
- 本文讲述了Python检测网络延迟的代码。分享给大家供大家参考,具体如下:#!/usr/bin/env python # coding: u
- 网站发布到IIS后,发现网站使用的Bootstrap框架所引用的woff字体无法正常显示。于是跟踪http请求,发现woff字体请求出现GE
- 大数据一般是在“云”上玩的,但“云”都是要钱的,而且数据上上下下的也比较麻烦。所以,在本地电脑上快速处理数据的技能还是要的。pandas在比
- 本文实例讲述了python队列原理及实现方法。分享给大家供大家参考,具体如下:队列(queue)是只允许在一端进行插入操作,而在另一端进行删
- 相比于2018年,在ICLR2019提交论文中,提及不同框架的论文数量发生了极大变化,网友发现,提及tensorflow的论文数量从2018
- 前言本文中代码运行的python版本一律采取2.7.13科普:经典类:classic class新式类:new-style classpyt
- 1、先写个 Mysql 的链接设置页面package com.wretchant.fredis.menu.mysql;impor
- Javascript刷新页面的几种方法: 1. history.go(0) 2. location.reload() 3. location
- froglt 的站点:http://www.go2here.net 欢迎转载,请注明出处,未经作者允许,禁止一切商业应用。这是即
- 方法超级简单,把时间格式化一下就好了,直接奉上代码function transDate() { var $time
- 介绍我们用django在本地调试完了之后,会在服务器上进行部署,如果是大佬那就忽略本文章,如果是萌新对编程命令不太熟悉,那就要用到宝塔了。流
- 如何将123456789转化成123,456,789这样的形式呢?很多流量大的站比如优酷都有这样的格式。也是设计程序最常用的算
- 1、python 操作xml的方式介绍查看全部包含“三种⽅法:⼀是xml.dom. * 模块,它是W3CDOMAPI的实
- 注意,下述部分主要与DOUBLE和FLOAT列相关,原因在于浮点数的不准确本质。MySQL使用64位十进制数值的精度执行DECIMAL操作,
- 前言selenium是浏览器自动化测试框架,是一个用于Web应用程序测试的工具,可以直接运行在浏览器当中,并可以驱动浏览器执行指定的动作,如
- 1、实例方法/对象方法实例方法或者叫对象方法,指的是我们在类中定义的普通方法。只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一