首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除pyglet资源缓存

清除pyglet资源缓存
EN

Stack Overflow用户
提问于 2013-01-17 05:03:51
回答 1查看 218关注 0票数 1

有没有办法清除pyglet中的资源缓存?资源的源映像在磁盘上更改,我需要重新加载它,但是pyglet使用缓存的资源。这就是我要做的:

代码语言:javascript
复制
pyglet.resource.path = [self.path]
pyglet.resource.reindex()
self.img = pyglet.resource.image(self.filename)

然后,磁盘上的图像文件发生了变化,我想重新加载它,并再次执行上述操作,但pyglet似乎使用了缓存的图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 10:40:54

我在使用pyglet时遇到了同样的问题。这是我想出的解决方案:

代码语言:javascript
复制
def clear_cache(filename):
        if filename in pyglet.resource._default_loader._cached_images:
            del pyglet.resource._default_loader._cached_images[filename]

这对我很有效!

解释:

在查看了pyglet源代码之后,resource模块似乎将图像名称记录在名为_cached_images的字典中。

当您像在示例中那样使用资源模块时,似乎也会在资源模块中创建一个名为_default_loader的对象。因此,可以在_default_loader._cached_images中找到缓存。

我确信有更好的方法来完成我所做的事情,比如对资源进行子类化,并在其中添加我自己的clear_cache方法。但是我是编程新手,而且我不太了解resource模块中的所有内容,所以这是我想出的最好的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14367791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档