禁用 Pylint no member- 特定库的 E1101 错误

Disabling Pylint no member- E1101 error for specific libraries

是否可以隐藏从特定库创建的对象的 E1101 错误?我们的大型存储库中到处都是 #pylint: disable=E1101 由 pandas 创建的各种对象。

例如,pylint 将在以下代码中抛出一个无成员错误:

import pandas.io.data
import pandas as pd
spy = pandas.io.data.DataReader("SPY", "yahoo")
spy.to_csv("test.csv")
spy = pd.read_csv("test.csv")
close_px = spy.ix["2012":]

会出现以下错误:

E:  6,11: Instance of 'tuple' has no 'ix' member (no-member)
E:  6,11: Instance of 'TextFileReader' has no 'ix' member (no-member)

您可以使用 generated-members 选项将它们的属性标记为动态生成。

例如pandas:

generated-members=pandas.*

我尝试忽略 numpy 中的错误时失败了,直到我尝试

generated-members=np.*

因为,像大多数人一样,我

import numpy as np

由于 generated-members 需要一个列表,所以可以这样做:

generated-members=numpy.*,np.*

补充信息,在 carabas 的回答之上:

您将在 .pylintrcTYPECHECK 部分找到 generated-members
这是默认值:

[TYPECHECK]
…
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed.
generated-members=REQUEST,acl_users,aq_parent

请注意,关于抑制 E0201 的评论不完整。
所以你必须将其更新为:

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 or E1101 when accessed.
generated-members=REQUEST,acl_users,aq_parent,pandas.*