Python 3.x distributed.protocol.pickle-INFO-序列化失败。例外:出于安全原因,不允许酸洗AuthenticationString对象
python代码::Python 3.x distributed.protocol.pickle-INFO-序列化失败。例外:出于安全原因,不允许酸洗AuthenticationString对象,python-3.x,python-2.7,dask,dask-distributed,dask-delayed,Python 3.x,Python 2.7,Dask,Dask Distributed,Dask Delayed,python代码:: from dask.distributed import variable, Client from multiprocessing import Process, current_process def my_task(proc): print("process object::", proc) def doubler(number): # do stuff returns something proc = Process(target=double
from dask.distributed import variable, Client
from multiprocessing import Process, current_process
def my_task(proc):
print("process object::", proc)
def doubler(number):
# do stuff returns something
proc = Process(target=doubler, args=(numbers,)) # creating a python process
client = Client()
future = client.submit(my_task, proc)
在运行上述代码时,我得到proc对象的序列化错误。请帮我解决这个问题
distributed.protocol.pickle - INFO - Failed to serialize (<Process(Process-1, initial)>,). Exception: Pickling an AuthenticationString object is disallowed for security reasons
Traceback (most recent call last):
File "stop_task.py", line 42, in <module>
future = client.submit(my_task, proc)
File "/usr/lib/python2.7/site-packages/distributed/client.py", line 1121, in submit
retries={skey: retries} if retries else None)
File "/usr/lib/python2.7/site-packages/distributed/client.py", line 1954, in _graph_to_futures
'tasks': valmap(dumps_task, dsk3),
File "/usr/lib/python2.7/site-packages/toolz/dicttoolz.py", line 84, in valmap
rv.update(zip(iterkeys(d), map(func, itervalues(d))))
File "/usr/lib/python2.7/site-packages/distributed/worker.py", line 703, in dumps_task
'args': pickle.dumps(task[1:])}
File "/usr/lib/python2.7/site-packages/distributed/protocol/pickle.py", line 51, in dumps
return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL)
File "/usr/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 881, in dumps
cp.dump(obj)
File "/usr/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 268, in dump
return Pickler.dump(self, obj)
File "/usr/lib64/python2.7/pickle.py", line 224, in dump
self.save(obj)
File "/usr/lib64/python2.7/pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/lib64/python2.7/pickle.py", line 548, in save_tuple
save(element)
File "/usr/lib64/python2.7/pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "/usr/lib64/python2.7/pickle.py", line 419, in save_reduce
save(state)
File "/usr/lib64/python2.7/pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/lib64/python2.7/pickle.py", line 649, in save_dict
self._batch_setitems(obj.iteritems())
File "/usr/lib64/python2.7/pickle.py", line 681, in _batch_setitems
save(v)
File "/usr/lib64/python2.7/pickle.py", line 306, in save
rv = reduce(self.proto)
File "/usr/lib64/python2.7/multiprocessing/process.py", line 290, in __reduce__
'Pickling an AuthenticationString object is '
TypeError: Pickling an AuthenticationString object is disallowed for security reasons
distributed.protocol.pickle-INFO-未能序列化(,)。例外:出于安全原因,不允许酸洗AuthenticationString对象
回溯(最近一次呼叫最后一次):
文件“stop_task.py”,第42行,在
future=client.submit(我的任务,proc)
文件“/usr/lib/python2.7/site packages/distributed/client.py”,第1121行,提交
重试次数={skey:retries}如果重试,则为无)
文件“/usr/lib/python2.7/site packages/distributed/client.py”,第1954行,在图到图中
“任务”:valmap(转储任务,dsk3),
文件“/usr/lib/python2.7/site packages/toolz/dicttoolz.py”,第84行,在valmap中
rv.更新(zip(iterkeys(d)、地图(func、iTerValue(d)))
文件“/usr/lib/python2.7/site packages/distributed/worker.py”,第703行,位于dumps\u任务中
“args”:pickle.dumps(任务[1:])}
文件“/usr/lib/python2.7/site packages/distributed/protocol/pickle.py”,第51行,转储
返回cloudpickle.dumps(x,协议=pickle.HIGHEST\u协议)
文件“/usr/lib/python2.7/site packages/cloudpickle/cloudpickle.py”,第881行,转储中
cp.dump(obj)
文件“/usr/lib/python2.7/site packages/cloudpickle/cloudpickle.py”,第268行,在转储文件中
返回Pickler.dump(自、obj)
文件“/usr/lib64/python2.7/pickle.py”,第224行,在转储中
自我保存(obj)
文件“/usr/lib64/python2.7/pickle.py”,第286行,保存
f(self,obj)#用显式self调用未绑定方法
文件“/usr/lib64/python2.7/pickle.py”,第548行,在save_tuple中
保存(元素)
文件“/usr/lib64/python2.7/pickle.py”,第331行,保存
自我保存(obj=obj,*rv)
文件“/usr/lib64/python2.7/pickle.py”,第419行,在save\u reduce中
保存(状态)
文件“/usr/lib64/python2.7/pickle.py”,第286行,保存
f(self,obj)#用显式self调用未绑定方法
保存目录中的文件“/usr/lib64/python2.7/pickle.py”,第649行
self.\u batch\u setitems(obj.iteritems())
文件“/usr/lib64/python2.7/pickle.py”,第681行,在批处理设置项中
保存(v)
文件“/usr/lib64/python2.7/pickle.py”,第306行,保存
rv=减少(自编程)
文件“/usr/lib64/python2.7/multiprocessing/process.py”,第290行,在__
'正在酸洗AuthenticationString对象'
TypeError:出于安全原因,不允许酸洗AuthenticationString对象
我不确定这里出了什么问题。。感谢你的时间和帮助。。谢谢..看起来
进程
对象不可序列化。这并不奇怪。一台机器上的进程
无法很好地转换为其他机器上的进程。这类对象太难移动,因此无法序列化。为什么要将流程对象发送给workers?父进程与某个进程的关系不同于周围的任何其他进程。如果必须,您可以发送PID。