Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dask distributed.core-错误-';元组';对象不支持项分配_Python_Dask_Dask Distributed_Dask Delayed_Dask Dataframe - Fatal编程技术网

Python Dask distributed.core-错误-';元组';对象不支持项分配

Python Dask distributed.core-错误-';元组';对象不支持项分配,python,dask,dask-distributed,dask-delayed,dask-dataframe,Python,Dask,Dask Distributed,Dask Delayed,Dask Dataframe,我在我的项目中使用Dask和cython,在向客户机注册后调用cython代码,并将从cython代码获得的结果收集到我的Dask python代码中。当我创建一个processs=True的集群时,它可以正常工作。但是,一旦我写入processs=False,它就会给出以下错误: distributed.core - ERROR - 'tuple' object does not support item assignment Traceback (most recent call last

我在我的项目中使用Dask和cython,在向客户机注册后调用cython代码,并将从cython代码获得的结果收集到我的Dask python代码中。当我创建一个processs=True的集群时,它可以正常工作。但是,一旦我写入processs=False,它就会给出以下错误:

 distributed.core - ERROR - 'tuple' object does not support item assignment
Traceback (most recent call last):
  File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/core.py", line 555, in handle_stream
    msgs = await comm.read()
  File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/comm/inproc.py", line 199, in read
    msg = nested_deserialize(msg)
  File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 549, in nested_deserialize
    return replace_inner(x)
  File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 541, in replace_inner
    x[k] = replace_inner(v)
  File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 534, in replace_inner
    x[k] = deserialize(v.header, v.frames)
  File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 388, in deserialize
    return loads(header, frames)
  File "/home/user/anaconda3/envs/Dask/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 83, in pickle_loads
    buffers[i] = buf.cast(mv.format)
TypeError: 'tuple' object does not support item assignment
distributed.worker - ERROR - 'tuple' object does not support item assignment
我正在使用以下代码段:

from dask.distributed import Client, LocalCluster,wait
cluster=LocalCluster(processes=False)
client=Client(cluster)
client.register_worker_callbacks(init_pyx)  ## init_pyx is a function by which worker register to cython code
df = dd.read_csv(path_to_csv_file)
processed_df=df.map_partitions(lambda part: handle_partition(part),meta=meta)  #handle partition is function which uses cython code to preprocess each partition of dataframe, meta is metadata related to preproceesed part
client.close() 
另外,早些时候我遇到了与内存视图相关的问题,但是当我重新安装dask时,内存视图错误消失了。现在出现了一个与“TypeError:“tuple”对象不支持项分配”相关的新错误

我也是达斯克的新手,如果有人知道如何解决这个问题,请在这方面帮助我。
提前感谢。

请分享您的代码,这是一个最小的可复制示例。例如,您是否有一个形状或步幅包含零的memoryview?亲爱的mdurant,当我重新安装dask时,问题已经解决。谢谢你的友好回复。但是,请再次查看帖子,其中说明了一个奇怪的问题。您是如何安装dask的,以及您拥有的dask和分发版的确切版本?我正在使用conda安装dask。我使用的是与(2021.3.1)相同版本的dask和分布式dask。