pygame.error:视频系统未初始化

2025-03-21 09:06:00
admin
原创
29
摘要:问题描述:每当我尝试执行我的pygame代码时都会出现此错误:pygame.error: video system not initializedfrom sys import exit import pygame from pygame.locals import * black = 0, 0, 0 wh...

问题描述:

每当我尝试执行我的pygame代码时都会出现此错误:
pygame.error: video system not initialized

from sys import exit
import pygame
from pygame.locals import *

black = 0, 0, 0
white = 255, 255, 255
red = 255, 0, 0
green = 0, 255, 0
blue = 0, 0, 255

screen = screen_width, screen_height = 600, 400

clock = pygame.time.Clock()

pygame.display.set_caption("Physics")

def game_loop():
  fps_cap = 120
  running = True
  while running:
      clock.tick(fps_cap)

      for event in pygame.event.get():  # error is here
          if event.type == pygame.QUIT:
              running = False

      screen.fill(white)

      pygame.display.flip()

  pygame.quit()
  exit()

game_loop()
#!/usr/bin/env python

解决方案 1:

您还没有给pygame.init()任何地方打过电话。

请参阅基本入门教程,或具体的导入和初始化教程,其中解释了:

在对 pygame 进行更多操作之前,你需要初始化它。最常见的方法是进行一次调用。

pygame.init()

这将尝试为您初始化所有 pygame 模块。并非所有 pygame 模块都需要初始化,但这会自动初始化需要初始化的模块。您也可以轻松地手动初始化每个 pygame 模块。例如,仅初始化您刚刚调用的字体模块。

在您的特定情况下,它可能pygame.display会抱怨您调用了 itsset_caption或 itsflip而没有先调用 its init。但实际上,正如教程所说,最好只将init所有内容放在顶部,而不是试图弄清楚什么时候需要初始化什么。

解决方案 2:

将代码更改为此,可避免该错误。运行时:clock.tick(fps_cap)

for event in pygame.event.get(): #error is here
    if event.type == pygame.QUIT:
        running = False
        pygame.quit()
if running:
     screen.fill(white)
     pygame.display.flip()

解决方案 3:

pygame.quit()对于我来说,这是一个问题,因为我最后没有跳出循环。

解决方案 4:

我对你的代码做了一些修改:

import os
import sys
import math
import pygame
import pygame.mixer
from pygame.locals import *

pygame.init()
black = 0, 0, 0
white = 255, 255, 255
red = 255, 0, 0
green = 0, 255, 0
blue = 0, 0, 255

screen = pygame.display.set_mode((600, 400))

clock = pygame.time.Clock()

pygame.display.set_caption("Physics")


while True:
    clock.tick(120)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
    screen.fill(green)

    pygame.display.flip()

解决方案 5:

#这将欺骗系统,使其认为它具有视频访问权限

import os
import sys
os.environ["SDL_VIDEODRIVER"] = "dummy"

解决方案 6:

您收到错误是因为您尝试设置窗口标题(使用set_caption())但尚未创建 pygame 窗口,所以您的screen变量只是一个包含未来窗口大小的元组。

要创建 pygame 窗口,您必须调用pygame.display.set_mode(windowSize)

祝你好运 :)

解决方案 7:

  1. 如果您pygame.init()这样做,则解决了视频系统初始化问题。但您会收到以下错误:

AttributeError: tuple object has no attribute 'fill') 这。


  1. 当你这样做时,这个问题正在解决

screen = pygame.display.set_mode((600, 400))

但不是这样做

screen = screen_width, screen_height = 600, 400

  1. 那么整个问题就解决了。

解决方案 8:

你只需添加

exit()

停止运行代码示例:

for event in pygame.event.get(): #error is here
    if event.type == pygame.QUIT:
        running = False
        exit() # Solution

解决方案 9:

如果你在窗口class中使用,pygame请不要pygame.init()在你的中使用class。请pygame.init()在下面的库中使用。

解决方案 10:

您必须添加:

pygame.init()

在退出显示之前,您应该停止 while 循环。

解决方案 11:

  1. 您需要使用此命令初始化 pygamepygame.init

If the problem is not solved then following this step
  1. 当您使用测试版时就会出现此问题。

  2. 所以我的建议是请使用新的,旧版本(如果现在使用的是 3.8 python,则需要安装 python 3.7)

  3. 现在转到 python 终端并安装 pygame (pip install pygame)

  4. 现在问题解决了......

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用