Bootstrap

pycharm中 可以导入cv2,可以运行,但不能补全的问题解决方法

(解决这个问题的根源也是环境路径问题,网上不少方法都是解决路径问题的,这个方法对我是唯一有效的,但是不保证所有人都有效,这里提供一个解决的思路吧~)

之前在pycharm用cv2一直正常,可以正常识别,imread,imwrite也能自动补全和识别,按ctrl+b也能正常跳转,之前偶然发现不知道为啥cv2突然不行了,imread,imwrite这些不能识别和补全了,按ctrl+b会显示找不到对象。

在网上找了很多的教程和解决方案,都是在讲cv2的环境路径问题,但是跟着别人的教程都没法解决我这里的问题。

最新又新装了一台电脑,安装cv2的时候特别注意了一下这个问题,发现新装的pycharm没有这个问题,cv2所有功能都正常,然后我就突发奇想看一下正常的cv2的环境路径到底在哪,所以我就在没问题的电脑上对着imread按了一下ctrl+b,然后发现imread所在文件的路径是一个很奇怪的路径。但是这个路径其实我是知道的,这就是我自己修改过的pycharm缓存文件的路径。(在pycharm安装目录下的bin文件夹内的idea.properties中修改)

在这里插入图片描述
在这里插入图片描述


原始的idea.properties文件长这样,config,system,plugins和log路径是空的,默认就是存c盘,有时候能占用十几g的空间,这里可以自己填写路径把缓存文件放到自己想放的位置。
在这里插入图片描述


然后我好像就突然明白了,cv2的这些文件,不是在site-packages里面直接调用的,而是你安装完之后pycharm载入虚拟环境的时候把site-packages里面的cv2相当于解包出来了,然后存到了pycharm自己的缓存路径里面。
具体的路径是:pycharm缓存目录\system\python_stubs\一堆乱码数字\cv2
如果这个路径里面有完整的文件,那cv2在pycharm里面的功能都会是正常的了。




然后我就回到我有问题的电脑上,看看这台电脑上的缓存路径下有没有cv2的文件夹呢?结果问题果然出现在这里!我的路径下空空如也,也不知道为啥当初cv2文件夹没有生成。

然后我就把有问题的电脑上的pycharm缓存路径重新修改了一遍,也是修改idea.properties文件,修改完之后关闭pycharm,再重新打开。

重新打开pycharm的时候软件会提示你是否导入之前的config,点确定就行。

再次进到pycharm里面的时候,软件会重新读取虚拟环境的列表生成缓存,如果你的虚拟环境比较大的话,这一步要比较长的时间,耐心等一下,等他全部生成完。
在这里插入图片描述

这时候你再去\system\python_stubs\一堆乱码数字\ 这个文件夹下面应该就能看到cv2这个文件夹了。这个时候你再去pycharm里面写代码调用cv2会发现一切正常了,对着imread按ctrl+b会发现imread的文件路径就是跳转到pycharm的缓存文件夹里面的。


如果你之前已经修改过idea.properties文件已经有了自定义的缓存路径,还是出现了这样的问题,这时候你不需要修改缓存路径,你直接去到你自定义的缓存路径下的\system\python_stubs\文件夹里,把这里面乱码数字的文件夹删了,再重启pycharm,pycharm也会重新生成虚拟环境的,等它重新生成完就正常了。


在这里插入图片描述

自此问题解决。困扰了我大半年。。。。

;