【问题标题】:pylint no member issue but code still works vscodepylint 没有成员问题,但代码仍然有效 vscode
【发布时间】:2019-11-12 14:58:56
【问题描述】:

我这里有一个非常简单的代码

import torch

l = torch.nn.Linear(2,5)
v = torch.FloatTensor([1, 2])
print(l(v))

在torch.FloatTensor 下,Visual Studio 代码中的 pylint 声称“Module torch 没有“FloatTensor”成员 pylint(no-member)。

但是,代码运行良好。这是误报吗?如何禁用此特定实例的 pylint?

【问题讨论】:

  • 可以选择切换到不同的 linter 吗?当我在 vscode 中切换到 flake8 时,类似的错误消失了:CTRL + Shift + P Python: Select Linter->flake8.

标签: python visual-studio-code pylint


【解决方案1】:
  1. 按:CTRL + Shift + P

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

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


【讨论】:

  • 这真的有效吗?我用它编辑了我的 JSON,pylint 完全停止工作。
  • 谢谢。这解决了我在 Visual Studio Code 上的问题。
  • @RGS,它对我有用。你确定你没有忘记在上面插入上面#3 的行的末尾的逗号吗?
  • @SoCalCoder 我是...:/
  • @SoCalCoder,您是否可能忘记了“--generated-members”中的“d”?我相信上面的答案有错别字。
【解决方案2】:

是的,这是 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 可能会有所不同

【讨论】:

  • 谁能分享更多关于这个的细节?我在(You Anaconda Path)\pkgs\pylint-xxx-xxx 路径下找不到Scripts 目录。
  • @Boooooooooms 一样!你能告诉我你是如何解决这个问题的吗?谢谢!
  • 这个解决了我的问题。 VS 代码更新并将我的 pylint 指向基本版本而不是环境版本。我尝试修改设置 json,但没有奏效
  • Scripts 文件夹存在于 Windows 中,不确定在不同的操作系统中是否会有所不同。一般来说,您正在寻找 pylint.exe。如果它不存在,那么我认为您需要pip intall pylint
【解决方案3】:

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

  1. 点击 CTRL + Shift + P
  2. 点击“首选项:打开设置 (JSON)”
  3. 将以下内容添加到您看到的 JSON 文件中:
"python.linting.pylintArgs": [
    "--generated-members", "torch.*"
]

为了这个答案,假设有其他模块出现问题,那么你会写:

"python.linting.pylintArgs": [
    "--generated-members", "torch.* other_module.* next_module.*"
]

【讨论】:

    【解决方案4】:

    这个问题的更好答案在这里:Why does it say that module pygame has no init member?

    上面标记为引用 Anaconda 的答案对我来说没有意义,可能是新手问题。

    请点击链接获取真正的独家新闻,但要总结一下-

    将 extensionname 替换为您的问题模块名称,例如 pygame 或 RPi 或 Torch:

    1. 按 CTRL + Shift + P

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

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

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2021-05-24
        • 1970-01-01
        • 1970-01-01
        • 2012-10-30
        • 1970-01-01
        • 1970-01-01
        • 2021-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多