无法在 Atom 中使用 PyGame 打开图像
Cannot Open Images With PyGame in Atom
我正在学习 python 使用 this website
我正在尝试像这样加载图像:
background_image = pygame.image.load("background.jpg").convert()
我发现其他几个帖子问同样的问题,所有的答案都告诉发帖者确保图像与 .py
文件位于同一文件夹中。好吧,是的。我仔细检查了。
我还尝试将其放入名为 'images'
的子文件夹中并使用它。
background_image = pygame.image.load(os.path.join("images","background.jpg")).convert()
在这两种情况下,我都会收到以下错误消息。
pygame.error: Couldn't open saturn_family1.jpg
或
pygame.error: Couldn't open images\saturn_family1.jpg
当使用绝对路径时,它有效。但是我不应该能够使用这样的相对路径吗?
此外,当使用 script
包在 Atom 中执行时,也会发生这种情况。但是当执行实际的 python 文件时,它起作用了。
我很沮丧,这似乎没有任何意义!怎么回事?
完整的错误信息是:
C:\Users\Manu\Dropbox\Python\ProgramArcadeGames
Traceback (most recent call last):
File "C:\Users\Manu\Dropbox\Python\ProgramArcadeGames\Ch11_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]
这是 .py
目录:
更新:
我 运行 在 sublime 中使用完全相同的代码并且运行良好。我假设这是 Atom 的问题,所以从现在开始我将只使用 Sublime。感谢所有试图提供帮助的人!
将文件放在与您的 python 程序相同的目录中,前提是这是当前工作目录。因为我们知道情况并非如此,所以要么您在脚本执行时以某种方式更改了工作目录,要么您从其他目录开始。您可以使用
在命令行上执行此操作
python ../myscript.py
但我不认为你正在这样做。你说一下运行 Atom下的脚本,或许可以解释一下。我没有这方面的经验,所以我不能随便说。请输入
print os.getcwd()
作为程序的第一行。然后您就会知道从哪里开始以及当前目录是否正在更改。如果它没有改变,请尝试 运行 Atom 下的脚本并从命令行查看是否会得到不同的结果。在我们确切知道发生了什么之前,我们将无法解决问题。
我用VS写代码的时候也出现了同样的错误。
我通过更改图像的路径(此处使用绝对路径)来解决这个问题。
将pygame.image.load('/images/xxx')
改为
pygame.image.load('/Users/xxx/..../images/xxxx')
我正在使用 mac,但在其他 OS 上应该是一样的。
图片使用绝对路径即可。
例如:
self.image = pygame.image.load('C:/Users/denis/Documents/python_practice/git_practice/Python_lessons/alien_invasion/images/ship.bmp')
我正在学习 python 使用 this website
我正在尝试像这样加载图像:
background_image = pygame.image.load("background.jpg").convert()
我发现其他几个帖子问同样的问题,所有的答案都告诉发帖者确保图像与 .py
文件位于同一文件夹中。好吧,是的。我仔细检查了。
我还尝试将其放入名为 'images'
的子文件夹中并使用它。
background_image = pygame.image.load(os.path.join("images","background.jpg")).convert()
在这两种情况下,我都会收到以下错误消息。
pygame.error: Couldn't open saturn_family1.jpg
或
pygame.error: Couldn't open images\saturn_family1.jpg
当使用绝对路径时,它有效。但是我不应该能够使用这样的相对路径吗?
此外,当使用 script
包在 Atom 中执行时,也会发生这种情况。但是当执行实际的 python 文件时,它起作用了。
我很沮丧,这似乎没有任何意义!怎么回事?
完整的错误信息是:
C:\Users\Manu\Dropbox\Python\ProgramArcadeGames
Traceback (most recent call last):
File "C:\Users\Manu\Dropbox\Python\ProgramArcadeGames\Ch11_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]
这是 .py
目录:
更新: 我 运行 在 sublime 中使用完全相同的代码并且运行良好。我假设这是 Atom 的问题,所以从现在开始我将只使用 Sublime。感谢所有试图提供帮助的人!
将文件放在与您的 python 程序相同的目录中,前提是这是当前工作目录。因为我们知道情况并非如此,所以要么您在脚本执行时以某种方式更改了工作目录,要么您从其他目录开始。您可以使用
在命令行上执行此操作python ../myscript.py
但我不认为你正在这样做。你说一下运行 Atom下的脚本,或许可以解释一下。我没有这方面的经验,所以我不能随便说。请输入
print os.getcwd()
作为程序的第一行。然后您就会知道从哪里开始以及当前目录是否正在更改。如果它没有改变,请尝试 运行 Atom 下的脚本并从命令行查看是否会得到不同的结果。在我们确切知道发生了什么之前,我们将无法解决问题。
我用VS写代码的时候也出现了同样的错误。 我通过更改图像的路径(此处使用绝对路径)来解决这个问题。
将pygame.image.load('/images/xxx')
改为
pygame.image.load('/Users/xxx/..../images/xxxx')
我正在使用 mac,但在其他 OS 上应该是一样的。
图片使用绝对路径即可。 例如:
self.image = pygame.image.load('C:/Users/denis/Documents/python_practice/git_practice/Python_lessons/alien_invasion/images/ship.bmp')