我们一直是粉丝的忠实粉丝pylint.它的静态分析已成为我们所有python项目的关键部分,并且节省了大量时间来追逐晦涩的错误.但是从1.3 - > 1.4升级后,几乎所有编译的c扩展都会导致E1101(无成员)错误.
之前通过pylint1.3 运行完全清洁的项目现在抱怨几乎每个使用E1101的C扩展成员.我们被迫禁用E1101错误,但这实际上减损了它的用处pylint.
例如,这完全有效地使用了lxml包
r"""valid.py: demonstrate pylint 1.4 error"""
from lxml import etree
print etree.Element('mydoc')
Run Code Online (Sandbox Code Playgroud)
运行此过程pylint,它会报告:
$ pylint -rn valid.py
No config file found, using default configuration
************* Module valid
E: 3, 6: Module 'lxml.etree' has no 'Element' member (no-member)
Run Code Online (Sandbox Code Playgroud)
但它完全有效:
$ python valid.py
<Element mydoc at 7fddf67b1ba8>
Run Code Online (Sandbox Code Playgroud)
这里真的很奇怪.一小部分C扩展似乎可以正常工作pylint,例如:
r"""valid2.py: this one works fine"""
import sqlite3
print sqlite3.version
$ pylint -rn valid2.py
No config file …Run Code Online (Sandbox Code Playgroud) 我这里有一个非常简单的代码
import torch
l = torch.nn.Linear(2,5)
v = torch.FloatTensor([1, 2])
print(l(v))
Run Code Online (Sandbox Code Playgroud)
下torch.FloatTensor,pylint的视觉工作室代码声称“模块炬没有‘FloatTensor’构件pylint的(无成员)。
但是,代码工作正常。这是误报吗?如何为此特定实例禁用 pylint?
我在 VSCode 上使用 pygame 模块,但遇到了 pygame 没有 init 成员的问题。我按照此链接的解决方案进行操作。我编辑了用户设置并添加了
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=pygame",
"--unsafe-load-any-extension=y"
]
Run Code Online (Sandbox Code Playgroud)
到json文件的末尾
pygame 问题已解决。但是,当我使用import random. 我收到此警告:
缺少模块文档字符串pylint(缺少模块文档字符串)
我该如何让它消失?另外,有没有更好的方法来解决pygame的init问题?
谢谢!