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。感谢所有尝试提供帮助的人!
只要是当前工作目录,就可以将文件与python程序放在同一目录中。由于我们知道情况并非如此,因此要么在执行脚本时以某种方式更改工作目录,要么在其他目录中启动。您可以在命令行上使用
python ../myscript.py
Run Code Online (Sandbox Code Playgroud)
但我不认为您正在这样做。您说了一些有关在Atom下运行脚本的内容,这也许可以解释它。我对此没有任何经验,所以我不能随便说。请把
print os.getcwd()
Run Code Online (Sandbox Code Playgroud)
作为程序的第一行。然后,您将知道从哪里开始以及当前目录是否正在更改。如果没有更改,请尝试在Atom下并从命令行运行脚本,以查看是否获得不同的结果。除非我们确切地知道发生了什么,否则我们将无法解决问题。