【发布时间】:2014-05-27 05:58:37
【问题描述】:
我无法找到这个令人困惑的困境的答案,我想知道这是否是我无法识别的错误的根源。我在 64 位 Windows 7 上运行,我目前正在编写一个游戏,其中主进程应该能够使用 Multiprocessing 模块生成多个进程。然后,这些子进程中的每一个都会生成一个额外的进程,该进程使用多处理模块运行图形库。
当我尝试运行脚本(从 IDLE 和通过命令提示符运行文件)时,我得到一个回溯,内容如下:
Traceback (most recent call last):
File "C:\Users\David\Desktop\Py\split\multiverse.py", line 141, in multiButtonPress
self.universeList[0].start()
File "C:\Python27\lib\multiprocessing\process.py", line 130, in start
self._popen = Popen(self)
File "C:\Python27\lib\multiprocessing\forking.py", line 277, in __init__
dump(process_obj, to_child, HIGHEST_PROTOCOL)
File "C:\Python27\lib\multiprocessing\forking.py", line 199, in dump
ForkingPickler(file, protocol).dump(obj)
File "C:\Python27\lib\pickle.py", line 224, in dump
self.save(obj)
File "C:\Python27\lib\pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "C:\Python27\lib\pickle.py", line 419, in save_reduce
save(state)
File "C:\Python27\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python27\lib\pickle.py", line 649, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Python27\lib\pickle.py", line 681, in _batch_setitems
save(v)
File "C:\Python27\lib\pickle.py", line 306, in save
rv = reduce(self.proto)
File "C:\Python27\lib\multiprocessing\managers.py", line 484, in __reduce__
return type(self).from_address, \
AttributeError: type object 'SyncManager' has no attribute 'from_address'
SyncManager 是多处理库中的一个类。我的子流程是否包含一个对象,该对象是 Process 的一个实例,它的可取性被弄乱了?如果是这样,有没有办法在不必完全重新设计系统的情况下解决这个问题?
【问题讨论】:
标签: python-2.7 multiprocessing subprocess pickle traceback