vtk程式碼正常執行,pylint報錯no module、no member、undefined variable
阿新 • • 發佈:2020-10-19
相關問題
環境:在vscode中使用python3.7,呼叫第三方庫vtk-8.2.0生成的包
錯誤:出現no module
、no member
、undefined variable
錯誤,但實際程式碼能夠正常執行
解決方案
新增pylint附加項--ignored-modules=vtk
,可解決no member
和no module
報錯
開頭改為from vtk.util.colors import light_grey
,可解決後續undefined variable
報錯
具體原因
見github.com/PyCQA/pylint/issues/1524
大意是說有可能是以下兩種原因:
- 該模組是c拓展,pylint讀不到原始碼,也不知道模組有哪些成員
- 該模組採用動態特性比如
globals().update
來更新檔案,pylint無法分析這種動態成員
可用--ignored-modules=vtk
、--generated-members=vtk.*
、--extension-pkg-whitelist=vtk
等類似的方式來禁用相關模組的靜態程式碼檢查
PS
雖然解決了pylint報錯問題,但仍然無法做到自動補全等智慧操作,治標不治本
歸根到底還是python的語言特性,像c++這種有標頭檔案的可能就不會出現這種情況吧