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 Pathpylint-1.8.4-py36_0 可能会有所不同

  1. 按:CTRL + Shift + P

  2. 单击“首选项:打开设置 (JSON)”

  3. 将此行添加到 JSON 中: "python.linting.pylintArgs": ["--generated-members", "from_json,query"]


对我有用的是注意到哪些模块给出了这些错误,这对你来说是 torch,然后执行以下步骤:

  1. hit CTRL + Shift + P
  2. 点击"Preferences: Open Settings (JSON)"
  3. 将以下内容添加到您看到的 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:

  1. 按 CTRL + Shift + P

  2. 单击“首选项:打开设置 (JSON)”

  3. 将以下内容添加到您看到的 JSON 文件中(在 {} 内,如果已经有条目,请添加前导逗号):

    "python.linting.pylintArgs": [ "--extension-pkg-whitelist=extensionname" // 逗号分隔 ]

正如 Tomari 所说,它在 windows.There 上确实有效,但在 linux 上略有不同。该路径可能类似于“(You Anaconda Path)/pkgs/pylint-2.6.0-py38_0/bin/pylint”。