如何修复“ pygame模块没有成员K_RIGHT”

时间:2019-07-19 17:06:20

标签: python visual-studio-code pygame

好,所以我决定制作一个简单的蛇游戏,而我已经遇到了一个简单的问题。我沿if keys[pygame.K_RIGHT]if keys[pygame.K_LEFT]等行的行给我一个“ pygame没有成员“ K_RIGHT / K_LEFT”错误。

我尝试了py -m pip uninstall pygame,然后重新安装了它,但是错误仍然存​​在。即使在运行程序时,也无法按向左/向右/向上/向下键,并且在执行import pygame然后执行pygame.init()时也会遇到相同的错误。


            if keys[pygame.K_RIGHT]:
                self.player.moveright

            if keys[pygame.K_LEFT]:
                self.player.moveleft

            if keys[pygame.K_UP]:
                self.player.moveup

            if keys[pygame.K_DOWN]:
                self.player.movedown

            if keys[pygame.K_ESCAPE]:
                self._running=False

子画面不会移动,并且出现“无成员”错误。怎么了?

1 个答案:

答案 0 :(得分:2)

这不一定是错误,而更多是pylint的限制。目前,pylint具有无法识别C代码的局限性,如以下答案中所述:pylint 1.4 reports E1101(no-member) on all C extensions

  

只有来自受信任来源(标准库)的C扩展是   加载到正在检查的Python流程中以从实时构建AST   模块。

K_RIGHT(以及所有其他常量)被导入为from pygame.constants import *,但实际上它们是src_c/constants.c中定义的C代码,该代码以的形式存储在pygame的python安装中。 constants.cpython- [ver]-[arch] .so

很遗憾,没有办法解决该错误。如果您不希望VS Code + pylint将它们显示为错误,则可以通过将其添加到 settings.json

中来隐藏它们
"python.linting.pylintArgs": [
    "--extension-pkg-whitelist=pygame"
]