繁体   English   中英

连接到dask.distributed集群时出现Pickle错误

[英]Pickle error when connecting to dask.distributed cluster

这是我的简单代码。想要运行我的第一个程序。

from dask.distributed import Client
client = Client('192.168.1.102:8786')


def inc(x):
    return x + 1

x = client.submit(inc, 10)
print(x.result())

尝试使用此命令运行此代码时:

$python3 filename.py

我正在犯这个错误:

/usr/local/lib/python3.4/dist-packages/distributed/protocol/pickle.py
- INFO - Failed to serialize <function inc at 0x7f678ad05840> Traceback (most recent call last):   File
"/usr/local/lib/python3.4/dist-packages/distributed/protocol/pickle.py",
line 33, in dumps
    return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL) AttributeError: 'module' object has no attribute 'dumps'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):   File
 "/usr/local/lib/python3.4/dist-packages/distributed/protocol/pickle.py",
 line 43, in dumps
    return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL) AttributeError: 'module' object has no attribute 'dumps' Traceback
 (most recent call last):   File
 "/usr/local/lib/python3.4/dist-packages/distributed/protocol/pickle.py",
 line 33, in dumps
     return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL) AttributeError: 'module' object has no attribute 'dumps'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):   File "dis.py", line 8, in
 <module>
    x = client.submit(inc, 10)   File "/usr/local/lib/python3.4/dist-packages/distributed/client.py", line
 643, in submit
     loose_restrictions, priority={skey: 0})   File "/usr/local/lib/python3.4/dist-packages/distributed/client.py", line
 1235, in _graph_to_futures
     'tasks': valmap(dumps_task, dsk3),   File "/usr/local/lib/python3.4/dist-packages/toolz/dicttoolz.py", line 84,
 in valmap
     rv.update(zip(iterkeys(d), map(func, itervalues(d))))   File "/usr/local/lib/python3.4/dist-packages/distributed/worker.py", line
 812, in dumps_task
     return {'function': dumps_function(task[0]),   File "/usr/local/lib/python3.4/dist-packages/distributed/worker.py", line
 779, in dumps_function
     b = dumps(func)   File "/usr/local/lib/python3.4/dist-packages/distributed/protocol/pickle.py",
 line 43, in dumps
     return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL) AttributeError: 'module' object has no attribute 'dumps'

通常,酸洗错误是Dask.distributed网络(工作者,调度程序或客户端)的某些元素与Python版本不匹配的迹象。 也许你的工作人员在没有意识到的情况下在Python 2下运行?

尤其是错误说, cloudpickle库没有一个dumps方法,这是相当奇怪的。 据我所知,cloudpickle总是有一个dumps功能。 您是否在您的环境中拥有一个奇怪的cloudpickle库或一个非常旧的版本?

如果您只是尝试一下,也可以通过省略调度程序的地址在同一进程中启动本地集群

from dask.distributed import Client

# client = Client('scheduler-address:8786')
client = Client()  # create local "cluster"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM