我们在项目中使用ElementTree library。这来自标准库,但由于某种原因pylint扼杀了它。它总是在ElementTree对象的任何引用上报告E1101。以下是一些代码示例:
import xml.etree.ElementTree as ET
test = ET.parse('test.xml')
config = test.find('.//configuration')
print(config)
for role in config.findall('.//role'):
print(role)
pylint的输出总是抛出一个E1101:
$ pylint --rcfile=pylint.cfg -E test.py
************* Module orion-scripts.test
E: 7,12: Instance of 'int' has no 'findall' member (no-member)
但程序运行得很好:
$ python test.py
<Element 'role' at 0x1052dfe50>
<Element 'configuration' at 0x1052dfe10>
我找到了许多针对类似问题的解决方案,但到目前为止,没有一个能够解决这个问题。我试过了:
ignored-classes=xml.etree.ElementTree
generated-members=ET
unsafe-load-any-extension=yes
没有任何效果,我现在只是忽略E1101消息。但是,这是一个非常糟糕的选择,我更愿意忽略这个特定的类。如果有帮助,这是pylint的版本信息:
$ pylint --version
No config file found, using default configuration
pylint 1.6.3,
astroid 1.4.7
Python 2.7.11 (default, Jan 22 2016, 08:28:37)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)]