9

我正在使用 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'] 和 ['../Images']。我还尝试删除路径和重新索引调用并将 Erosion.py 和 Guard.png 放在同一个文件夹中。

4

6 回答 6

5

这就是我为了能够加载资源所做的事情:

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)
于 2013-05-08T10:34:02.343 回答
2

试试这个

pyglet.image.load('path/to/image.png')
于 2011-08-15T09:06:07.603 回答
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 方法而不是写成字符串。

于 2013-12-21T17:52:01.530 回答
0

我使用 pyglet 和 pyscripter 遇到了这样的问题。(文本编辑器)为了找到文件,我必须在运行程序之前重新启动编辑器。

然而,这可能是 pyscripter 的问题。

于 2012-04-16T00:43:11.883 回答
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()

使用tryfinally不是必需的,但建议使用。如果在出现错误时不关闭窗口,您最终可能会打开很多窗口和 pyglet back 进程。

于 2018-06-16T21:49:00.770 回答
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_gray_block_filled.png')

我使用的是 pyglet 1.4.4 并且能够使用第一种格式。升级到 pyglet 1.4.8 后出现错误:pyglet.resource.ResourceNotFoundException:在路径上找不到资源“your_resource_path”。

使用正斜杠切换到第二种格式为我解决了这个问题。不知道为什么要进行此更改...我敢肯定这是有充分理由的。

于 2019-11-22T22:07:54.873 回答