Pylint e1101: класс «reddit» не имеет члена «subreddit»

Я пытаюсь получить случайное изображение из 10 лучших сообщений в сабреддите Reddit «мемы», но оно выдает ошибку pylint E1101. Вроде все правильно сделал. Вот мой код:

Кажется, я ничего не могу найти по этому поводу.

reddit = praw.Reddit(client_id='my client ID',
    client_secret='my client secret',
    user_agent='my user agent',
    username='username')




@commands.command()
async def meme(self):
    memes = reddit.subreddit('memes').hot()
    post_to_pick = random.randint(1, 10)
    for i in range(0, post_to_pick):
        submission = next(x for x in memes if not x.stickied)

person That Thing    schedule 04.01.2019    source источник
comment
Можете ли вы указать, в какой строке линтер выдает это сообщение?   -  person thuyein    schedule 04.01.2019
comment
Если класс использует setattr для создания атрибутов во время выполнения, Pylint не сможет их обнаружить. См. этот вопрос stackoverflow.com/q/35990313/494134   -  person John Gordon    schedule 04.01.2019
comment
@ThuYeinTun memes = reddit.subreddit('memes').hot() специально для Reddit   -  person That Thing    schedule 04.01.2019
comment
Вот строка, в которой определено Reddit.subreddit. Я ожидаю, что ваш линтер увидит это. Являются ли ваши установки praw и pylint самыми последними версиями?   -  person Patrick Haugh    schedule 04.01.2019
comment
обновлены praw и pylint   -  person That Thing    schedule 04.01.2019


Ответы (1)


Это связано с тем, что pylint по умолчанию доверяет только расширениям C из стандартной библиотеки и будет игнорировать те, которые не являются.

Так как praw не является частью stdlib, вам нужно внести его в белый список вручную. Для этого перейдите в каталог вашего проекта в терминале и сгенерируйте rc-файл для pylint:

$ pylint --generate-rcfile > .pylintrc

Затем откройте этот файл и добавьте praw в белый список следующим образом:

extension-pkg-whitelist=praw

После этого все ошибки E1101, касающиеся praw, больше не должны появляться.

Подробнее в этом ответе.

person Tristo    schedule 04.01.2019