VSCode作为目前可以说是最流行的代码编辑器,通过添加扩展,可以对各种语言的代码进行友好的编辑,包括错误提示、代码补全等等。
但是在使用VSCode写Python代码时,常常遇到 Module ‘XXX’ has no ‘XXX’ memberpylint(no-member)的问题。我个人是在使用cv2和pytorch遇到较多,比如:
Module ‘cv2’ has no ‘getGaussianKernel’ memberpylint(no-member)
或
Module ‘torch’ has no ‘from_numpy’ memberpylint(no-member)
这样的。
虽然这里被标红作为错误,但是实际运行起来却没有任何问题。这个问题原因实际上出在pylint上。
解决方案如下:
打开setting.json,可以看到包含一些设置,例如:
{
"editor.tabSize": 2
}
在其中添加两行,修改为:
{
"editor.tabSize": 2,
"python.pythonPath": "C:\\Program Files\\Anaconda3\\python.exe",
"python.linting.pylintPath":"C:\\Program Files\\Anaconda3\\pkgs\\pylint-2.1.1-py37_0\\Scripts\\pylint"
}
添加内容第一行是python.exe的路径,第二行是pylint这个包的路径,修改成自己的安装路径即可。
回到原来报错的代码,发现报错消失。
对于新版本的VSCode,setting.json打开方式不是很直接,需要首先点击左下角齿轮图标,进入设置,在设置页面向下滚动,找到:
并点击进入setting.json修改即可
虽然这样的报错其实并不影响正常执行,但是对强迫症非常不友好,而且可能会干扰debug的判断。建议强迫症患者及时解决以免影响coding心情
(手动狗头