当前位置: 首页 > 面试题库 >

导入pygame时导入pycode的VScode失败

佴淮晨
2023-03-14
问题内容

导入pygame pylint时会发疯:

E1101:Module 'pygame' has no 'init' member
E1101:Module 'pygame' has no 'QUIT' member

我搜索了网络,发现了这一点:

"python.linting.pylintArgs": ["--ignored-modules=pygame"]

它解决了pygame的问题,但是现在pylint正以其他方式发疯:crazy_pylint.png。然后我发现了"python.linting.pylintArgs": ["--ignored-files=pygame"],但是它的作用是完全禁用我正在工作的整个目录的pylint。那么我怎么说pygame一切正常呢?


问题答案:

对于E1101:问题是大多数Pygame直接在C中实现。现在,就性能而言,这一切都很好,但是,pylint(VSCode使用的lint)无法扫描这些C文件。不幸的是,这些相同的文件定义了一堆有用的东西,即QUIT与其他常量,比如MOUSEBUTTONDOWNK_SPACE等,以及如函数initquit

要解决此问题,首先要首先通过删除中的所有参数来停止忽略pygame模块"python.linting.pylintArgs"。相信我,短绒棉可以派上用场。

现在解决问题。对于常量(大写形式),请手动将其导入,如下所示:

from pygame.constants import (
    MOUSEBUTTONDOWN, QUIT, MOUSEMOTION, KEYDOWN
)

现在,您可以使用它们而无需在它们之前添加pygame.

for event in pygame.event.get():
    if event.type == QUIT:
        pygame.quit()
    if event.type == KEYDOWN: 
        # Code

接下来,对于您init和其他函数的错误,您可以通过两种方法手动帮助linter解决这些问题:

  • 可以将其添加到您的代码中:# pylint: disable=no-member。这将停用整个文件的成员验证,从而防止显示此类错误。
  • 或者,您可以用错误将行括起来:

# pylint: disable=no-member
pygame.quit()
# pylint: enable=no-member

这与第一种方法的操作类似,但是将效果限制为仅该行。

最后,对于所有其他警告,解决方案是 修复
它们。Pylint在这里向您展示代码毫无意义或不符合Python规范的地方。快速浏览一下您的屏幕快照,例如,您的模块没有文档字符串,您声明了未使用的变量…
Pylint在这里可以帮助您编写简洁,清晰,漂亮的代码。您可以忽略这些警告或隐藏它们(带有# pylint: disable=和这些代码),或者花一点时间清理所有内容。

从长远来看,这是最好的解决方案,因为它将使您的代码更具可读性,因此更易于维护。



 类似资料:
  • 在空闲的Python 3.7.2中运行import pygame后,现在在Anaconda spyder中尝试,得到完全相同的错误 在终端中,当我运行pip3安装py游戏: 在空闲的Python 3.7.2中运行sys.path之后 所以我猜系统上安装了几个版本的python,pygame在3.7/site-packages中。 如何让 pygame 在 Idle python 3.7.2 中工作

  • 我下载了pygame,但VS代码显示,在问题部分,它是在终端中,它显示“ModuleNotFoundError:没有名为'pygame'的模块” 是什么原因导致它无法导入? 编辑:我补充了一些细节

  • 尝试安装OpenCV时遇到问题,尝试导入cv2会导致此输出- 我运行的是Windows7x64,Pythonv2.7。谢谢!

  • 我试图运行此代码: 我一直得到的问题是这个错误报告: 你能帮帮我吗?

  • 我启动了简单的Angular 2应用程序,一切正常。但当我添加lodash导入并尝试使用它时,我会出现错误,应用程序停止工作,无法找出问题所在。 我在控制台中遇到以下两个错误: 未捕获的语法错误:意外标记 未捕获的语法错误:意外标记 文件夹 指数html tsconfig.json 包裹json

  • 问题内容: 我已经在Windows平台上安装了PyQt5,并且遇到了importError:DLL加载失败。 我已经使用以下命令安装了pyqt5 我的Python版本如下: 导入错误如下: 感谢和问候 问题答案: 这是因为丢失(存根dll,会重新导出功能,以便扩展的一个版本可用于多个python版本)。 如果您的Python发行版未捆绑python3.dll,则可以从WinPython(https