2011-06-30 148 views
7

我使用Python 2.6.6和pyglet 1.1.4。在我的「Erosion」文件夾中,我有「Erosion.py」和一個名爲「Images」的文件夾。裏面的圖像,有.png圖像。一個圖像被命名爲「Guard.png」。資源未找到pyglet異常

在 「Erosion.py」 有是去像這樣的一段:我試圖改變

pyglet.resource.path = ['Images'] 
pyglet.resource.reindex() 
self.image = pyglet.resource.image('%s%s' % (character, '.png')) 

當我運行此,我給

File "C:\Python26\lib\site-packages\pyglet\resource.py", line 394, in file raise ResourceNotFoundException(name) 
ResourceNotFoundException: Resource "Guard.png" was not found on the path. Ensure that the filename has the correct captialisation. 

指向['./Images']和['../Images']的路徑。我也嘗試刪除路徑和reindex調用,並將Erosion.py和Guard.png放在同一個文件夾中。

回答

0

嘗試this

pyglet.image.load('path/to/image.png') 
+0

http://www.pyglet.org/doc/programming_guide/playing_sounds_and_music.html 更多關於加載資源 –

0

我得到這樣使用pyglet和pyscripter(文本編輯器)中的問題。爲了使文件被發現我有運行程序之前重新啓動編輯器。

但是,這可能是pyscripter的問題。

+0

如果pyglet不允許直接指定完整路徑名,這是pyglet中的一個問題。 –

2

這是我做的是能夠加載的資源:

pyglet.resource.path = ['C:\\Users\\myname\\Downloads\\temp'] 
pyglet.resource.reindex() 

pic = pyglet.resource.image('1.jpg') 

texture = pic.get_texture() 
gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER, gl.GL_NEAREST) 

texture.width = 960 
texture.height = 720 

texture.blit(0, 0, 0) 
+0

也就是說,如果你真的需要它的資源處理程序。 我使用它,因爲它使我可以通過GL庫輕鬆快速地處理更多的附加參數。 – Torxed

+0

這太可怕了。當我打電話給「reindex()」時,我的電腦似乎索引了一切,需要幾分鐘時間。 –

+0

@BerryTsakala它旨在將所有補丁索引到您提供的補丁下面的文件夾中。因此,不要將您的腳本放在'\ Downloads \'並從那裏索引,而是爲您的項目使用特定的文件夾。 – Torxed

1

如果相對路徑不工作,你可以使用os模塊的絕對路徑試試。

import pyglet 
import os 

working_dir = os.path.dirname(os.path.realpath(__file__)) 
pyglet.resource.path = [os.path.join(working_dir,'Images')] 
pyglet.resource.reindex() 

image = pyglet.resource.image('character.png')) 

最好使用os.path.join方法,而不是將其寫爲字符串以獲得更好的跨平臺支持。