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

Python-错误:无法打开.png文件

凌宏大
2023-03-14
问题内容

不知道我做错了什么,我正在跟随一个有关如何使用Python和PyGame制作游戏的教程,但出现错误:

 pygame.error: Couldn't open resources/images/dude.png

我的代码如下:

import pygame
from pygame.locals import *


pygame.init()
width, height = 640, 480
screen=pygame.display.set_mode((width,height))

player = pygame.image.load("resources/images/dude.png")

while 1:

    screen.fill(0)

    screen.blit(player, (100,100))

    pygame.display.flip()

    for event in pygame.event.get():


        if event.type==pygame.QUIT:
            pygame.quit()
            exit(0)

完整的错误消息是:

ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function
snd_func_card_driver  returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_concat
returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer
returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file  or
directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default
Traceback (most recent call last):
  File "/root/Documents/PyGame/game.py", line 9, in <module>
    player = pygame.image.load("resources/images/dude.png")
pygame.error: Couldn't open resources/images/dude.png

问题答案:

使用相对路径(这样做总是更好):

import os

current_path = os.path.dirname(__file__) # Where your .py file is located
resource_path = os.path.join(current_path, 'resources') # The resource folder path
image_path = os.path.join(resource_path, 'images') # The image folder path

这样,无论您将包含.py文件的文件夹移动到何处,都可以访问其子目录(以及因此包含的所有子目录),而无需修改代码。

最终代码:

import pygame
import os
from pygame.locals import *


pygame.init()

width, height = 640, 480
screen = pygame.display.set_mode((width, height))

current_path = os.path.dirname(__file__) # Where your .py file is located
resource_path = os.path.join(current_path, 'resources') # The resource folder path
image_path = os.path.join(resource_path, 'images') # The image folder path

player_image = pygame.image.load(os.path.join(image_path, 'dude.png'))

while 1:

    screen.fill(0)

    screen.blit(player, (100,100))

    pygame.display.flip()

    for event in pygame.event.get():


        if event.type==pygame.QUIT:
            pygame.quit()
            exit(0)

对所有其他文件使用此访问方法,将避免很多问题。



 类似资料:
  • 我想在数据目录中为应用程序创建一个数据库。我试着使用 但我总是遇到以下异常:无法打开数据库文件 Logcat得出以下结果: 04-10 19:55:09.387: E/SqliteDatabase aseCpp(554):sqlite3_open_v2("/data/data/at.einkaufsliste/database/Einkaufsliste.sqlite", 我设置了权限外部存储和组

  • 问题内容: 我正在尝试从命令行运行Websphere自由配置文件服务器。我正在按照这里告诉的步骤进行操作:https : //developer.ibm.com/wasdev/downloads/liberty-profile-using-non-eclipse- environments/ 我创建了名称为server1的服务器。 但是当提取完成后,我尝试使用以下命令启动服务器: 服务器抛出错误:

  • 问题内容: 我正在尝试为将要用于游戏的地图做基础,但无法将图像加载到屏幕上。我尝试使用相同的字母大小写将图像的绝对文件路径发送到图像,尝试更改图像的名称,尝试加载在我制作的其他程序中可以使用的其他图像,并且尝试放置图像与脚本本身位于同一目录中。什么都没有。我查看了遇到相同问题的人的一些话题,例如为什么我的pygame图片无法加载?而且我找不到我的问题的答案。图像将不会加载。这是代码: 和错误: 我

  • 问题内容: 我正在学习如何在Python中打开文件,但是当我键入要打开的文件的路径时,会弹出一个窗口,说“(unicode错误)’unicodeescape编解码器无法解码位置2-3的字节:被截断的\ UXXXXXXXX转义”。它突出显示了我的第一个括号。这是代码: 问题答案: 一个明显的问题是您使用的是普通字符串,而不是原始字符串。在 会被解释为制表符,而不是文字反斜杠,其后是。 使用以下之一:

  • 我用的是Android平板,上面有Xamarin/C#应用。我试图用这款平板电脑访问驻留在我的Windows 10机器上的SQLite数据库。我选择使用USB/Android而不是Android模拟器,应用程序仍然驻留在Windows 10机器上。这似乎无关紧要,但我也尝试过映射驱动器、共享文件夹和创建网络连接。项目参考 这是代码: 命名空间CicoAndroid{公共部分类MainPage: C

  • 问题内容: 我正在尝试运行,但始终给我一个错误“ 无法打开包含文件:’config- win.h’ ”。 在我的Mac和另一台Windows机器上,该安装工作正常,但在此机器上却不能。我已经下载了Visual Studio C ++,并尝试同时安装32位和64位。 问题答案: 对于64位Windows 使用滚轮安装 从 http://www.lfd.uci.edu/~gohlke/pythonli