python - 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"]
}
解决方案
因此,python 解释器在运行代码时抛出异常(通常称为“错误”)与pylint向您显示的警告之间存在差异。
pylint 的工作是在运行代码之前尝试警告您潜在的问题。这是一个试图推断潜在问题的静态分析库。它有时遇到的一件事是检测复杂或动态包的“成员”。Pygame 就是这样一个包。
它在这里给你的警告告诉你 pylint 认为init()
pygame 中没有任何功能。有,只是pylint通过代码分析看不到它。您可以通过多种方式处理此问题:
- 你可以完全禁用pygame的pylint
- 您可以逐行禁用 pylint
- 您可以按块禁用 pylint
- 您可以针对特定警告在每行/每块的基础上禁用 pylint
您可以在此处阅读有关抑制 pylint 警告的各种选项
现在,我建议您使用链接到的帖子中的信息——但请注意,该作者的答案中有一个错字,已在评论中更正。你会想要改变["--extension-pkg-whitelist=lxml"]
阅读["--extension-pkg-whitelist=pygame"]
推荐阅读
- c# - Visual Studio 构建 - 路径中的逗号问题
- java - Spring Boot Jersey 自动配置
- c++ - 转换此函数以读取整个文件
- cytoscape.js - 如何使边缘的标签显示在中间位置?
- python - 类型错误:序列项 0:预期的 str 实例,在尝试打印列表时引发 int
- java - 使用绘制的 bufferedImage 调整 JFrame 大小时 Java 崩溃
- android - 使用手机运行应用时,Android 组件位置不匹配
- javascript - 制作一个球从屏幕一侧反弹而没有反弹的游戏
- visual-studio - 串口过滤返回
- java - 如何配置 Spring Boot 以同时使用 Vault 和属性文件?