无法pickle<class'\u main'.JobQueueManager'>

2024-06-09 16:52:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这个code(也附在下面)中遇到了一个可挑选性问题。我已经阅读了相关的文章[1][2],但是我找不到有用的对应代码。你能解释一下这个错误吗?

下面是返回错误的代码部分:

pickle.PicklingError: Can't pickle <class '__main__.JobQueueManager'>: it's not found as __main__.JobQueueManager

谢谢!

def make_server_manager(port, authkey):

    job_q = Queue.Queue()
    result_q = Queue.Queue()

    class JobQueueManager(SyncManager):
        pass

    JobQueueManager.register('get_job_q', callable=lambda: job_q)
    JobQueueManager.register('get_result_q', callable=lambda: result_q)

    manager = JobQueueManager(address=('', port), authkey=authkey)
    manager.start()
    print 'Server started at port %s' % port
    return manager

PS:Python 2.7.7,赢7


Tags: 代码registergetqueuemainport错误manager