相关疑难解决方法(0)

Python:TypeError:出于安全原因,不允许选择AuthenticationString对象

我正在创建一个类的对象(with multiprocessing)并将其添加到一个,Manager.dict()以便我可以在其工作完成时从对象内的字典中删除该项(该项指向).

我尝试了以下代码:

from multiprocessing import Manager, Process

class My_class(Process):
    def __init__(self):
        super(My_class, self).__init__()
        print "Object", self, "created."

    def run(self):
        print "Object", self, "process started."


manager=Manager()
object_dict=manager.dict()

for x in range(2):
    object_dict[x]=My_class()
    object_dict[x].start()
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误:

TypeError: Pickling an AuthenticationString object is disallowed
for security reasons
Run Code Online (Sandbox Code Playgroud)

为了好奇,我删除了多处理部分,并试着像:

from multiprocessing import Manager
class My_class():
    def __init__(self):
        print "Object", self, "created."

manager=Manager()
object_dict=manager.dict()

for x in range(2):
    object_dict[x]=My_class()
Run Code Online (Sandbox Code Playgroud)

它没有给我任何错误并显示两个对象的地址.

这个错误是什么以及如何让它消失?

python class multiprocessing python-multiprocessing

12
推荐指数
1
解决办法
3445
查看次数