Vscode Pylint no-member

Vscode Pylint no-member(本答案僅適用於解決Django報錯)

錯誤信息

Class ‘XXX’ has no ‘object’ member pylint(no-member)

使用環境

Vscode
Pylint

錯誤分析

Pylint的報錯原因主要有以下兩種情況:

  1. object確實不存在當前成員(Pylint報錯且運行程序也報錯)
  2. object的成員是動態添加的,只有在程序運行時此成員纔會出現(Pylint報錯但是程序可正常執行)

解決方法

方法一(推薦)

使用pylint-django對Pylint進行增強,讓Pylint理解Django web framework

步驟

  1. 安裝pylint-django
    pip install pylint-django

  2. 在vscode的setting.json對pylint-django進行使用

"python.linting.pylintArgs": [
    "--load-plugins",
    "pylint_django"
]

方法二(不推薦)

直接禁用no-member錯誤

步驟

  1. 在vscode的setting.json禁用no-member錯誤
"python.linting.pylintArgs": [
    "--disable=E1101"
]

方法三(極不推薦)

規定動態生成的成員

步驟

"python.linting.pylintArgs": [
    "--generated-members=pandas.*"
]

解釋

以下語句是使用pylint --long-help對以上方法進行的查找

--generated-members=<members names>
    List of members which are set dynamically and missed
    by pylint inference system, and so shouldn't trigger
    E1101 when accessed. Python regular expressions are
    accepted. [current: none]

吐槽

請問一下CSDN的大哥們能不能不要複製粘貼,一上來就說下面語句能解決問題,我???

"python.linting.pylintArgs": [
    "--generate-members"
]

你們用了之後真的解決了問題嗎?我怎麼用了之後Pylint什麼地方都不報錯了呢?
上面的語句等同於下面的語句,也能同樣達到你想要的效果

"python.linting.pylintArgs": [
    "--瞎粘貼就完事了,能不能用和我沒有關係,反正不是我的vscode,也不是我的人生"
]

錯誤原因
--generated-members不是--generate-members,少了個d,所以上面兩個語句都是一樣的,pylint執行的語句錯誤,所以pylint直接就不能用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章