pygame.error仅在命令提示符下“无法打开image.png”

时间:2018-11-30 07:44:38

标签: python pygame command-prompt

我写了一个非常简单的python程序来学习pygame,此外,我还使用图片。

当我使用PyCharm运行该程序时,或者当我双击该文件运行该程序时,它运行良好。但是,如果尝试通过命令提示符运行它,则会出现以下错误:

PageTransformer

这是我的代码中所引用的行:

C:\Users\julix>C:\Users\julix\Documents\test\pygame_tutorial.py
pygame 1.9.4
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
  File "C:\Users\julix\Documents\test\pygame_tutorial.py", line 21, in <module>
    carImg = pygame.image.load("racecar.png")
pygame.error: Couldn't open racecar.png

图像“ racecar.png”位于与程序完全相同的目录中。 令人困惑的是,我的代码似乎很好,因为通过双击运行它时没有错误。

如有必要,可以发布完整代码。 预先感谢

3 个答案:

答案 0 :(得分:0)

文件与程序位于同一目录这一事实无关紧要。如果您不提供路径,程序将在工作目录中查找文件,该文件可能是一个完全不同的文件。

如果要使用特定目录,请在文件名中添加路径。一种灵活的方法是确定当前文件的路径并使用它。 Python有一种使用os.path.dirname来做到这一点的方法。

import os.path
print(os.path.dirname(__file__))

在这种情况下,它将导致以下代码:

import os.path
filepath = os.path.dirname(__file__)
carImg = pygame.image.load(os.path.join(filepath, "racecar.png"))

答案 1 :(得分:0)

我建议一个简单的解决方案,我陷在同一阶段。 我当时使用VS Code进行编码,后来才意识到终端当前正在从父目录执行代码。 因此,要导入图像,我只需要将终端放入我当前的工作目录中,然后再次运行该程序即可。 图像加载良好,没有任何错误。

只需确保在终端中从与项目文件夹相同的工作目录中执行代码即可。

答案 2 :(得分:0)

我有同样的问题。但是对我来说,文件名是错误的。

*sub_img = os.path.join(img_folder, 'submarine.png.png')
        self.image = pygame.image.load(sub_img).convert()*

下载后,我已编辑文件名“ submarine.png”。 因此,此文件的名称为submarine.png,类型为png。 您可以通过将文件名更改为仅“潜水艇”来解决该问题

我希望这会有所帮助。