pygame.error:无法打开图像

Man*_*anu 2 python windows pygame atom-editor

我正在使用以下网站学习python:http : //programarcadegames.com/index.php?lang=zh-TW&chapter=bitmapped_graphics_and_sound

我正在尝试像这样加载图像:

background_image = pygame.image.load("background.jpg").convert()
Run Code Online (Sandbox Code Playgroud)

我发现其他几个人问同样的问题,所有答案都告诉发布者确保图像与.py文件位于同一文件夹中。好吧,是的。我仔细检查了。

我还尝试将其放入名为“ images”的子文件夹中并使用它。

background_image = pygame.image.load(os.path.join("images","background.jpg")).convert()
Run Code Online (Sandbox Code Playgroud)

在两种情况下,我都会收到以下错误消息。

pygame.error: Couldn't open saturn_family1.jpg
or    
pygame.error: Couldn't open images\saturn_family1.jpg
Run Code Online (Sandbox Code Playgroud)

使用居中路径时,它可以工作。但是我不应该能够使用这样的相对路径吗?

同样,当使用“脚本”包在Atom中执行时,也会发生这种情况。但是当执行实际的python文件时,它可以工作。

我很沮丧,这似乎没有任何意义!这是怎么回事?

编辑:完整的错误信息

C:\Users\Manu\Dropbox\Python\ProgramArcadeGames
Traceback (most recent call last):
  File "C:\Users\Manu\Dropbox\Python\ProgramArcadeGames\Ch11\11_graphicsAndSound.py", line 26, in <module>
    background_image = pygame.image.load(os.path.join("images","saturn_family1.jpg")).convert()
pygame.error: Couldn't open images\saturn_family1.jpg
[Finished in 0.815s]
Run Code Online (Sandbox Code Playgroud)

添加了我目录的图像: 在此处输入图片说明

在此处输入图片说明

更新: 我在sublime中运行了完全相同的代码,并且运行良好。我假设这是Atom的问题,所以从现在开始我将只使用Sublime。感谢所有尝试提供帮助的人!

sau*_*atz 5

只要是当前工作目录,就可以将文件与python程序放在同一目录中。由于我们知道情况并非如此,因此要么在执行脚本时以某种方式更改工作目录,要么在其他目录中启动。您可以在命令行上使用

python ../myscript.py
Run Code Online (Sandbox Code Playgroud)

但我不认为您正在这样做。您说了一些有关在Atom下运行脚本的内容,这也许可以解释它。我对此没有任何经验,所以我不能随便说。请把

print os.getcwd()
Run Code Online (Sandbox Code Playgroud)

作为程序的第一行。然后,您将知道从哪里开始以及当前目录是否正在更改。如果没有更改,请尝试在Atom下并从命令行运行脚本,以查看是否获得不同的结果。除非我们确切地知道发生了什么,否则我们将无法解决问题。