2017-02-04 49 views
0

我正在使用pygame在Python中编写游戏。我有一个代码:无法打开PNG,python pygame,相同的目录

imageJBird = pygame.image.load("jbirdnapis.png") 

一切正常,但突然停止。现在我有一个错误“无法打开jbirdnapis.png”。该图像与代码位于同一目录中。我使用Pycharm来执行游戏。它适用于其他贡献者的计算机 - 也是Ubuntu,同一版本。我们有来自git仓库的相同版本。有任何想法吗?

+0

您能否提供堆栈跟踪? – rlee827

+0

当然 回溯(最近通话最后一个)作者: 文件 “/home/oleistka/Desktop/projektJBird/J-Bird/jBird/view/states/Intro.py” 45行,在 介绍=简介() 文件“/home/oleistka/Desktop/projektJBird/J-Bird/jBird/view/states/Intro.py”,第24行,在__init__中 imageJBird = pygame.image.load(“jbirdnapis.png”) pygame。错误:无法打开jbirdnapis.png –

+0

我相信PyCharm从项目根目录运行脚本。只需使用相对路径(使用'os.path')或更改图像路径即可浏览项目目录。 –

回答

0

它在文件夹view中运行脚本,而不是在view/states‌,因此它正在搜索view中的图像。

您可以获取脚本的文件夹并添加到所有图像。

import os 

folder = os.path.dirname(os.path.realpath(__file__)) 

imageJBird = pygame.image.load(os.paht.join(folder, "jbirdnapis.png")) 

当你在不同的地方跑步时,这将是有用的。

+0

谢谢。现在它可以工作,但我很好奇它为什么早些时候在其他计算机上工作。你知道答案吗? –

+0

如果从文件夹'states'执行为'python script.py',那么“当前工作目录”(CWD)是'states',但是你(或PyCharm)可以从'view'文件夹将它作为'python states/script'运行。 py',然后CWD是'view',并在这个文件夹中搜索。顺便说一句:尝试在代码'print(os.getcwd())' – furas