Search code examples
visual-studio-codepygamepython-3.6pylint

I am creating Snake Game in python3.6.5 using PyGame. Here is the initial code and it is running well on PyCharm. But I am getting problems in VSCode


import pygame
pygame.init()
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)

gameDisplay = pygame.display.set_mode((800, 600))
pygame.display.set_caption('Snake')

gameExit = False

lead_x = 300
lead_y = 300

lead_x_change = 0
lead_y_change = 0

clock = pygame.time.Clock()

while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            gameExit = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                lead_x_change = -10
                lead_y_change = 0

            elif event.key == pygame.K_RIGHT:
                lead_x_change = 10
                lead_y_change = 0

            elif event.key == pygame.K_UP:
                lead_y_change = -10
                lead_x_change = 0

            elif event.key == pygame.K_DOWN:
                lead_y_change = 10
                lead_x_change = 0

    if lead_x >= 750 or lead_y >= 599 or lead_y < 0 or lead_x < 0:
        gameExit = True

    lead_x += lead_x_change
    lead_y += lead_y_change
    gameDisplay.fill(white)
    pygame.draw.rect(gameDisplay, black, [lead_x, lead_y, 10, 10])
    pygame.display.update()

    clock.tick(15)

pygame.quit()
quit()

I am getting following problems in VSCode:

E1101:Module 'pygame' has no 'init' member
E1101:Module 'pygame' has no 'K_RIGHT' member
E1101:Module 'pygame' has no 'QUIT' member
E1101:Module 'pygame' has no 'KEYDOWN' member
E1101:Module 'pygame' has no 'K_LEFT' member
E1101:Module 'pygame' has no 'quit' member
E1101:Module 'pygame' has no 'K_DOWN' member
E1101:Module 'pygame' has no 'K_UP' member
Why VScode is showing these problems while PyCharm is showing no errors and problems?


Solution

  • Those messages are generated by pylint. Pylint disables loading C extensions (Pygame in this case) by default for security reasons. To enable it add this to your settings:

    "python.linting.pylintArgs": [
        "--extension-pkg-whitelist=pygame"
    ]
    

    If you have other settings right, this should be enough.