首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:无法打开.png文件

错误:无法打开.png文件
EN

Stack Overflow用户
提问于 2017-02-20 02:47:15
回答 4查看 25.5K关注 0票数 5

不知道我做错了什么,我正在学习如何使用制作游戏的教程,我得到了错误:

代码语言:javascript
运行
复制
 pygame.error: Couldn't open resources/images/dude.png    

我的代码如下:

代码语言:javascript
运行
复制
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)

完整的错误消息是:

代码语言:javascript
运行
复制
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
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-20 12:01:21

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

代码语言:javascript
运行
复制
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文件的文件夹,它的子目录(以及它们包含的内容)仍然可以被访问,而无需修改代码。

最终代码:

代码语言:javascript
运行
复制
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)

对所有其他文件使用此访问方法,您将避免一系列问题。

票数 5
EN

Stack Overflow用户

发布于 2019-11-20 03:21:07

要使它在没有相对路径的情况下工作,您需要将您创建的.py文件放置在吡咯文件夹中。资源文件夹也应该在那里。

票数 0
EN

Stack Overflow用户

发布于 2017-02-20 02:53:05

Python在程序所在的文件夹中查找文件。你写的代码说,在你的程序所在的文件夹中,有一个叫做资源的文件夹,在这个文件夹中,有一个叫做images.If的文件夹--这是这样的,我帮不了你,但如果不是,那就使用完整的文件位置。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42335678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档