Python 使用pygame.image.load()时出错

Python 使用pygame.image.load()时出错,python,pygame,pycharm,Python,Pygame,Pycharm,当我尝试在另一个文件夹中加载图像时,我得到 pygame.error:无法打开sprites/testtile.png 如果.png文件在同一个目录中,我可以很好地加载它们,但是一旦它们在另一个文件夹中,我就会遇到这个错误 我知道python也可以访问另一个文件夹,因为我从文件夹中导入.py文件时不会出错 当我尝试pygame.image.get_extended时,它返回一个0,但是从同一目录加载.png文件不会给我带来任何问题,所以我不认为这是导致此问题的原因 顺便说一句,我正在运行PyCh

当我尝试在另一个文件夹中加载图像时,我得到

pygame.error:无法打开sprites/testtile.png

如果.png文件在同一个目录中,我可以很好地加载它们,但是一旦它们在另一个文件夹中,我就会遇到这个错误

我知道python也可以访问另一个文件夹,因为我从文件夹中导入.py文件时不会出错

当我尝试pygame.image.get_extended时,它返回一个0,但是从同一目录加载.png文件不会给我带来任何问题,所以我不认为这是导致此问题的原因

顺便说一句,我正在运行PyCharm,像这样的事情似乎总是给我这个IDE带来麻烦。我甚至不认为这是一个游戏问题。现在不知道该怎么办

文件夹结构:

脚本/GraphicsDriver.py

sprites/testtile.png


驱动程序正在尝试访问testile.png文件

是否在GraphicsDriver.py目录中的精灵目录?PyGame图像加载程序可能会遇到一些问题。它在PyGame初始化时所在的目录中查找文件。使用“os.path.join”将其指向文件的绝对路径

不过,我通常会围绕它编写自己的小型图像加载器,因为它为处理过程提供了更多的灵活性。类似这样的内容将返回图像和rect:

def load_image(name, colorkey = None):
    """loads an image and converts it to pixels. raises an exception if image not found"""
    fullname = os.path.join('data', name)
    try:
        image = pygame.image.load(fullname)
    except pygame.error, message:
        print 'Cannot load image:', name
        raise SystemExit, message
    image = image.convert()
    # set the colorkey to be the color of the top left pixel
    if colorkey is not None:
        if colorkey is -1:
            colorkey = image.get_at((0,0))
        image.set_colorkey(colorkey, RLEACCEL)
    return image, image.get_rect()

希望这会有所帮助

谢谢你的帮助。我实现了您的方法,并将其作为“testtile,testtile\u rect=load\u image('testtile.png')”运行。这返回了“无法打开数据\testtile.png”和“无法加载图像:testtile.png”fullname=os.path.join('data',name)可以更改为fullname=os.path.join('sprites',name),抱歉造成混淆。我从我的一个脚本中提取了这段代码,我在数据目录中有我的图像。是的,我在那里尝试了几个不同的目录,我认为数据是一个占位符。不幸的是,它仍然返回相同的错误。它返回两个错误,其中一个是“无法加载图像:testtile.png”。这与常规导入方法的基本错误相同。因此,我认为这与您的方法或它修复的内容无关。嗯,GraphicsDriver是在初始化PyGame,还是另一个脚本在这样做?我给你的代码将从初始化脚本往下看,而不是向上看。尝试使用完整的图像路径,比如fullname=C:\My\u game\sprites\testtile.png,显然会将路径更改为实际所在的位置。