2016-12-04 10 views
3

Это мой простой код. Попробуйте запустить мою первую программу.Ошибка сокета при подключении к кластеру dask.distributed

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 

Я geing этой ошибки:

/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' 

ответ

3

Часто травление ошибки признаков того, что какой-то элемент вашего DASK. распределенная сеть (рабочий, планировщик или клиент) имеет несоответствие версии Python. Возможно, ваши работники работают под Python 2, не понимая этого?

Эта ошибка, в частности, говорит о том, что библиотека cloudpickle не имеет метода dumps, что довольно странно. Насколько мне известно, облачная клавиатура всегда имела функцию dumps. Возможно, у вас есть нечетная библиотека облачной графики в вашей среде или очень старая версия?

Если вы просто пытаетесь вещи, вы также можете запустить локальный кластер в пределах вашего же процесса, Omiting адрес планировщика

from dask.distributed import Client 

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

мой код работает хорошо в IPython не Bt работает в Python3 –

+0

я также удалил ip из Client() .. и получил ту же ошибку ... действительно я не знаю, что на самом деле происходит ... bt этот код работает отлично в ipython –

+1

Возможно, у вас проблемы запуск нескольких Python-сред с вашей системой Python. Вы могли бы попробовать использовать Anaconda? Такие проблемы, как правило, уходят. – MRocklin