pylint 没有成员问题,但代码仍然有效 vscode
pylint no member issue but code still works vscode
我这里有一个非常简单的代码
import torch
l = torch.nn.Linear(2,5)
v = torch.FloatTensor([1, 2])
print(l(v))
在 torch.FloatTensor
下,visual studio 代码中的 pylint 声称“模块 torch 没有 'FloatTensor' 成员 pylint(无成员)。
但是,代码运行良好。这是误报吗?如何为这个特定实例禁用 pylint?
是的,是 Pylint 的问题
如果你使用 Anaconda,你可以这样做:
1. 在 VSCode 设置
中搜索 python.linting.pylintPath
2. 改为(You Anaconda Path)\pkgs\pylint-1.8.4-py36_0\Scripts\pylint
You Anaconda Path
和 pylint-1.8.4-py36_0
可能会有所不同
按:CTRL + Shift + P
单击“首选项:打开设置 (JSON)”
将此行添加到 JSON 中:
"python.linting.pylintArgs": ["--generated-members", "from_json,query"]
对我有用的是注意到哪些模块给出了这些错误,这对你来说是 torch
,然后执行以下步骤:
- hit CTRL + Shift + P
- 点击"Preferences: Open Settings (JSON)"
- 将以下内容添加到您看到的 JSON 文件中:
"python.linting.pylintArgs": [
"--generated-members", "torch.*"
]
为了这个答案,假设有其他模块出现问题,那么你会写:
"python.linting.pylintArgs": [
"--generated-members", "torch.* other_module.* next_module.*"
]
这个问题的更好答案在这里:Why does it say that module pygame has no init member?
上面标记为引用 Anaconda 的答案对我来说没有意义,可能是新手问题。
请跟随 link 获取真正的独家新闻,但总结一下 -
将 extensionname 替换为您的问题模块名称,例如 pygame 或 RPi 或 Torch:
按 CTRL + Shift + P
单击“首选项:打开设置 (JSON)”
将以下内容添加到您看到的 JSON 文件中(在 {} 内,如果已经有条目,请添加前导逗号):
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=extensionname" // 逗号分隔
]
正如 Tomari 所说,它在 windows.There 上确实有效,但在 linux 上略有不同。该路径可能类似于“(You Anaconda Path)/pkgs/pylint-2.6.0-py38_0/bin/pylint”。
我这里有一个非常简单的代码
import torch
l = torch.nn.Linear(2,5)
v = torch.FloatTensor([1, 2])
print(l(v))
在 torch.FloatTensor
下,visual studio 代码中的 pylint 声称“模块 torch 没有 'FloatTensor' 成员 pylint(无成员)。
但是,代码运行良好。这是误报吗?如何为这个特定实例禁用 pylint?
是的,是 Pylint 的问题
如果你使用 Anaconda,你可以这样做:
1. 在 VSCode 设置
中搜索 python.linting.pylintPath
2. 改为(You Anaconda Path)\pkgs\pylint-1.8.4-py36_0\Scripts\pylint
You Anaconda Path
和 pylint-1.8.4-py36_0
可能会有所不同
按:CTRL + Shift + P
单击“首选项:打开设置 (JSON)”
将此行添加到 JSON 中:
"python.linting.pylintArgs": ["--generated-members", "from_json,query"]
对我有用的是注意到哪些模块给出了这些错误,这对你来说是 torch
,然后执行以下步骤:
- hit CTRL + Shift + P
- 点击"Preferences: Open Settings (JSON)"
- 将以下内容添加到您看到的 JSON 文件中:
"python.linting.pylintArgs": [
"--generated-members", "torch.*"
]
为了这个答案,假设有其他模块出现问题,那么你会写:
"python.linting.pylintArgs": [
"--generated-members", "torch.* other_module.* next_module.*"
]
这个问题的更好答案在这里:Why does it say that module pygame has no init member?
上面标记为引用 Anaconda 的答案对我来说没有意义,可能是新手问题。
请跟随 link 获取真正的独家新闻,但总结一下 -
将 extensionname 替换为您的问题模块名称,例如 pygame 或 RPi 或 Torch:
按 CTRL + Shift + P
单击“首选项:打开设置 (JSON)”
将以下内容添加到您看到的 JSON 文件中(在 {} 内,如果已经有条目,请添加前导逗号):
"python.linting.pylintArgs": [ "--extension-pkg-whitelist=extensionname" // 逗号分隔 ]
正如 Tomari 所说,它在 windows.There 上确实有效,但在 linux 上略有不同。该路径可能类似于“(You Anaconda Path)/pkgs/pylint-2.6.0-py38_0/bin/pylint”。