LINUX.ORG.RU

pylint не видит константы в библиотеке

 ,


0

2

Есть программа из 2 строк:

from pygame.locals import FULLSCREEN, K_a, K_BACKQUOTE, K_BACKSPACE, K_c, K_d, K_DELETE, K_DOWN, K_e, K_ESCAPE, KEYDOWN
print(FULLSCREEN, K_a, K_BACKQUOTE, K_BACKSPACE, K_c, K_d, K_DELETE, K_DOWN, K_e, K_ESCAPE, KEYDOWN)

Нормально запускается и работает. Но если запустить pylint, будут ошибки:

$ pylint test.py --errors-only
************* Module test
test.py:2:0: E0611: No name 'FULLSCREEN' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_a' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_BACKQUOTE' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_BACKSPACE' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_c' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_d' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_DELETE' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_DOWN' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_e' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'K_ESCAPE' in module 'pygame.locals' (no-name-in-module)
test.py:2:0: E0611: No name 'KEYDOWN' in module 'pygame.locals' (no-name-in-module)

В чём проблема? Почему анализатор их не находит?

Python 3.10, Gentoo. Pygame-2.2.0 и Pylint-2.17.1 ставил через ебилды.

★★★★★

Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от question4

Фигасе. Я за тебя предположение сделал, код pygame открыл, в нем поковырялся, ссылку на определяющий твои константы сишный экстеншн привел, и вопрос «как так pylint их не нашёл» на этом считаю закрытым. Но если тебе такой мой сервис кажется не соответствующим заявленным обещаниям, шли в личку заявление на возврат денег, рассмотрю в течение тридцати рабочих дней.

t184256 ★★★★★
()
Ответ на: комментарий от question4

Не надо знать о Си ничего, кроме того, что он отличается от питона. pylint — статический анализатор кода на питоне. Это значит, что он анализирует код на питоне методом чтения кода на питоне без его исполнения. Твоих констант нет в коде на питоне. Нет и ничего удивительного в том, что pylint их не находит.

Так лучше?

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)