我正在使用Python 2.6.6和pyglet 1.1.4。在我的“Erosion”文件夹中,我有“Erosion.py”和一个名为“Images”的文件夹。在图像内部,有.png图像。一张图片名为“Guard.png。”
在“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']。我也尝试删除路径和reindex调用,并将Erosion.py和Guard.png放在同一个文件夹中。
答案 0 :(得分:3)
这就是我能够加载资源的方法:
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)
答案 1 :(得分:2)
如果相对路径不起作用,您可以使用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方法,而不是将其编写为字符串,以获得更好的跨平台支持。
答案 2 :(得分:0)
尝试this
pyglet.image.load('path/to/image.png')
答案 3 :(得分:0)
我使用pyglet和pyscripter得到了这样的问题。(文本编辑器)为了找到文件,我必须在运行程序之前重新启动编辑器。
然而,这可能是pyscripter的一个问题。
答案 4 :(得分:0)
值得研究:http://pyglet.readthedocs.io/en/pyglet-1.3-maintenance/programming_guide/resources.html
您应该将所有目录包含在:
中 pyglet.resource.path = [...]
然后在您致电时传递文件名:
pyglet.resource.image("ball_color.jpeg")
尝试:
import os
import pyglet
working_dir = os.path.dirname(os.path.realpath(__file__))
image_dir = os.path.join(working_dir, 'images')
sound_dir = os.path.join(working_dir, 'sound')
print working_dir
print "Images are in: " + image_dir
print "Sounds are in: " + sound_dir
pyglet.resource.path = [working_dir, image_dir, sound_dir]
pyglet.resource.reindex()
try:
window = pyglet.window.Window()
image = pyglet.resource.image("ball_color.jpeg")
@window.event
def on_draw():
window.clear()
image.blit(0, 0)
pyglet.app.run()
finally:
window.close()
不需要使用try
和finally
,但建议使用它们。如果在出现错误时不关闭窗口,最终可能会有很多打开的窗口和pyglet后台进程。
答案 5 :(得分:0)
pyglet 1.4.4格式:HUD_img = pyglet.resource.image('ui \ ui_gray_block_filled.png')
pyglet 1.4.8格式:HUD_img = pyglet.resource.image('ui / ui_ui_gray_block_filled.png')
我正在使用pyglet 1.4.4,并且能够在第一种格式中使用它。 升级到pyglet 1.4.8后,出现错误:pyglet.resource.ResourceNotFoundException:在路径上找不到资源“ your_resource_path”。
切换到带有正斜杠的第二种格式对我来说解决了这个问题。不知道为什么要进行此更改...我确定有充分的理由。