本文转载自博客,非常感谢博主解决了相应的问题。
前言
VSCode版本
我是在Windows10下使用的最新版的VSCode:June 2020 (version 1.47)
问题
安装Anaconda后再安装VSCode,默认给我们安装了Pylint。而Pylint是什么呢,这里引用博客:
pylint主要用来分析你的PY代码,查找出其中的错误,并给出提示,并且还可以为你提出一些编码风格的提示的一个PYTHON模块。总之,它的作用是使得你的代码更加的接近 PEP 008 (http://www.python.org/dev/peps/pep-0008/) Title: Style Guide for Python Code 中所描述的代码风格,使你的代码统一并更加可读。
使用起来很方便,但唯一不友好的是,它不能识别它包含之外的包,例如常见的opencv和pytorch,这对我来说很头疼,因为每当出现一次cv2和torch,他们下面就有一条红色的波浪线,导致VSCode右边的框里全是红色,强迫症表示很难受,最大的问题还是它埋藏了真正的语法错误,导致很难发现他们!效果就是这样的:
只要有torch和cv2出现的地方就有红色的波浪线,很是头疼
常见不正确的处理方式
1
打开百度搜索:vscode pylint OpenCV 红色波浪线,出现的第一条博客就是:解决VSCode 中调用cv2,代码一直显示红色波浪线的问题, 他里面说在VSCode的设置里面搜索pylintargs,然后添加一句:
"python.linting.pylintArgs": ["--generate-members"]
- 1
但是新版的VSCode里面已经看不到json文件了,我按照评论里面的说法添加:
--generate-members
- 1
如下:
我看到很多博客里面都是这么说的,例如:
https://blog.csdn.net/ngy321/article/details/88972255
https://blog.csdn.net/zaf0516/article/details/95635658
立马尝试了一下,发现红色波浪线的确是没有,但是所有的提示都没有了,像是把pylint卸载了一样,就像这样:
但这不是我的目的呀,我是想发现真正的错误!
2
看到一个批判上面做法的博客:Vscode Pylint no-member, 他里面说上面填的东西都是错误,应该是:
--generated-members
- 1
而不应该是–generate-members。
兴高采烈的改过来后发现还是无果……
我也安装他里面推荐的方法:安装pylint-django
pip install pylint-django
- 1
然后在填写–generated-members的位置写上:
--load-plugins=pylint_django
- 1
结果是没有了红色波浪线,但出现了很多不知道原因的蓝色波浪线:
还是没有解决问题
解决办法
直到看到GitHub上的一个做法:
即,添加:
--errors-only
--generated-members=numpy.* ,torch.* ,cv2.* , cv.*
- 1
- 2
现在的效果:
这就很好的解决了我的问题,关于的cv2和torch的红色波浪线没有了,只暴露我真实的错误,太好了
借用一个人的评论:You saved part of my life!
感谢