2017-02-04 75 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