如何解决VS代码中的PyGame问题以及可能的错误错误警报
我正在尝试学习pygame,但无法使其正常工作。 (我使用的是Python 3.8.5 64位)首先,我使用python3 -m pip install -U pygame --user
安装了pygame,并且运行良好,并且可以正确输入import pygame
。下一行pygame.init()
给了我一个错误。错误是Module 'pygame' has no 'init' memberpylint(no-member).
,我转到此链接以寻求解决方案Why does it say that module pygame has no init member?,发现其中一个问题是将"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解释器引发Exception(通常称为“错误”)与pylint向您显示的警告之间存在差异。
pylint的工作是在运行代码之前尝试警告您潜在的问题。这是一个静态分析库,试图推断潜在的问题。有时遇到麻烦的一件事是检测复杂或动态包的“成员”。 Pygame就是这样一个程序包。
这里给您的警告告诉您pylint认为pygame中没有init()
功能。只是因为pylint无法通过其代码分析看到它。您可以通过几种方式处理此问题:
- 您可以完全禁用pygame的pylint
- 您可以逐行禁用pylint
- 您可以逐块禁用pylint
- 您可以基于特定警告的每行/每块禁用pylint
您可以了解suppressing pylint warnings here
的各种选项目前,我建议您使用链接到的帖子中的信息-但请注意,作者的答案中有错别字,而该错字已在评论中得到纠正。您需要将["--extension-pkg-whitelist=lxml"]
更改为读取["--extension-pkg-whitelist=pygame"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。