相关问题
环境:在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++这种有头文件的可能就不会出现这种情况吧