【发布时间】:2019-03-10 15:50:54
【问题描述】:
所有,我正在尝试使用多处理并行化一些代码,并且我已经剥离了我的代码,以便注释我的主类的行
self.obs = Observer(self.guess)
使系统无错误运行。如果我写
obs = Observer(self.guess)
它有效,但如果我写 self.obs,我会得到 p>
TypeError: can't pickle Observer objects
这是我要导入的整个课程。它只是 ephem.Observer 的一个包装器,在导入时也出现了同样的错误。
import numpy as np
from req import SETTINGS
from req.helpers import load_db, pack_into_vector, create_observer
class Observer:
def __init__(self, beta=np.zeros((2,))):
self.observer = create_observer(beta)
return
def __getstate__(self):
return {'observer': self.observer}
错误发生在 p.start() where
p = Process(target=selector,args=(first_guess, recording_queue, guess_queue))
【问题讨论】:
-
需要更多信息:什么是
p,它的start()方法有什么作用?您可能会从阅读this article 中关于提问的内容中受益。然后也许编辑你的问题。
标签: python multiprocessing pickle python-multiprocessing