首页 > 解决方案 > VS 代码中 PyGame 的问题和可能的错误错误警报

问题描述

我正在尝试学习 pygame 并且无法使其正常工作。(我使用的是 python 3.8.5 64 位)首先我安装了 pygamepython3 -m pip install -U pygame --user并且工作正常,我可以输入import pygame没有错误。下一行,pygame.init()虽然,给了我一个错误。错误是Module 'pygame' has no 'init' memberpylint(no-member).我去这个链接寻求解决方案为什么它说模块 pygame 没有 init 成员?并找到了一个要粘贴"python.linting.pylintArgs": ["--extension-pkg-whitelist=lxml"].vscode>settings.json但这并没有使错误消失(是的,我保存了两个文件)。对我来说真正令人困惑的部分是代码按我想要的方式工作(为游戏创建一个新的空白窗口并用右上角的红色 x 关闭),即使有这些错误。我想每次我从 pygame 调用一个方法时,即使这些方法有效,我也会收到一个错误,我只是想确保让它在未来不会破坏它。

print(pygame)得到我

<module 'pygame' from 'C:\\Users\\jgood\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python38\\site-packages\\pygame\\__init__.py'>

dir(pygame)得到我

pygame 1.9.6

最后是代码

#where most python goes

import pygame

#initating our pygame stuff won't work without this line
pygame.init() <--- Module 'pygame' has no 'init' memberpylint(no-member)

#create screen like html document.getelementbyid.ect.ect
screen = pygame.display.set_mode((800, 600)) # this takes two args height and width in pixels

running = True # flag

#game loop
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT: <----- Module 'pygame' has no 'QUIT' memberpylint(no-member)
            running = False

这是我的settings.json文件

{
    "python.pythonPath": "C:\\Users\\jgood\\AppData\\Local\\Microsoft\\WindowsApps\\python3.8.exe",
    "python.linting.pylintArgs": ["--extension-pkg-whitelist=lxml"]
}

标签: pythonpython-3.xpygame

解决方案


因此,python 解释器在运行代码时抛出异常(通常称为“错误”)与pylint向您显示的警告之间存在差异。

pylint 的工作是在运行代码之前尝试警告您潜在的问题。这是一个试图推断潜在问题的静态分析库。它有时遇到的一件事是检测复杂或动态包的“成员”。Pygame 就是这样一个包。

它在这里给你的警告告诉你 pylint 认为init()pygame 中没有任何功能。有,只是pylint通过代码分析看不到它。您可以通过多种方式处理此问题:

  • 你可以完全禁用pygame的pylint
  • 您可以逐行禁用 pylint
  • 您可以按块禁用 pylint
  • 您可以针对特定警告在每行/每块的基础上禁用 pylint

您可以在此处阅读有关抑制 pylint 警告的各种选项

现在,我建议您使用链接到的帖子中的信息——但请注意,该作者的答案中有一个错字,已在评论中更正。你会想要改变["--extension-pkg-whitelist=lxml"]阅读["--extension-pkg-whitelist=pygame"]


推荐阅读