Python加载动画,出现分段错误

问题描述 投票:1回答:1

这是我使用pyglet.resource.animation()函数创建的用于在后台加载动画的代码,而该应用程序还执行了其他一些操作。

import pyglet
import threading

animations = dict()

class LoadingThread(object):
    def __init__(self):
        thread = threading.Thread(target=self.run, args=())
        thread.start()                                  # Start the execution

    def run(self):
        """ Method that runs forever """
        loadAnimations()
        print("Loaded all animations.")


def loadAnimations():
    global animations
    print("In loadAnimations")
    for animation in os.listdir(os.getcwd()):
        if animation.endswith(".gif"):
            print(animation)
            #Gives segmentation fault here
            animations[animation] = pyglet.resource.animation(animation)
    print("Loaded animations")

thread = LoadingThread()

在没有线程的情况下正常调用时运行良好。如果还有其他方法可以在pyglet中将动画加载到背景中,请提出建议。

谢谢。

python segmentation-fault python-multithreading pyglet
1个回答
0
投票

如@Frank Merrow所建议。这里的问题是我正在使用该功能pyglet.resource.animation("filename.gif")在我的主线程中也起作用。因此,这造成了细分错误。我发现了另一个也可以加载动画的功能。

pyglet.image.load_animation("filename.gif")

使用此方法解决了我的问题。

也可以通过启动两个线程同时运行主流和后台工作来解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.