You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dask导入异常:Dataframe正常但Client无法导入,版本兼容问题求助

问题:Dask与Distributed版本不兼容导致Client导入失败

并非所有版本的dask.dataframe和pandas都兼容,我尝试了多组版本组合:在Python 3.10.12环境下使用dask 2023.2.0和pandas 2.1.2时,dask.dataframe能正常工作,但执行from distributed import Client时触发报错:

File "/mypath/progs/myprog.py", line 16, in <module> 
    from distributed import Client
File "/usr/lib/python3/dist-packages/distributed/__init__.py", line 23, in <module> 
    from .deploy import Adaptive, LocalCluster, SpecCluster, SSHCluster 
File "/usr/lib/python3/dist-packages/distributed/deploy/__init__.py", line 5, in <module> 
    from .local import LocalCluster 
File "/usr/lib/python3/dist-packages/distributed/deploy/local.py", line 15, in <module> 
    from .utils import nprocesses_nthreads 
File "/usr/lib/python3/dist-packages/distributed/deploy/utils.py", line 4, in <module> 
    from dask.utils import factors 
ImportError: cannot import name 'factors' from 'dask.utils' (/mypath/.local/lib/python3.10/site-packages/dask/utils.py)

不确定这是否还和Pandas版本有关,想请教:这个问题的原因是什么?如何同时正常使用dask.dataframe和导入Client?


解决方案

这个错误和Pandas无关,核心是Dask和Distributed版本不匹配:

  • dask.utils.factors函数在较新的Dask版本中已被移除/重命名,但你系统中的Distributed仍是旧版本,仍在尝试导入该函数,导致报错。
  • 当前你的Dask是用户目录下的2023.2.0版本,而Distributed是系统级旧版本,两者依赖逻辑不兼容。

解决步骤:

  1. 统一Dask和Distributed版本
    卸载现有版本后,安装官方同步发布的兼容版本组合(Dask和Distributed版本号通常保持一致):

    pip uninstall dask distributed -y
    pip install dask==2023.2.0 distributed==2023.2.0
    
  2. 用虚拟环境隔离依赖
    避免系统包和用户本地包冲突,创建虚拟环境后再安装全套依赖:

    python3.10 -m venv dask_env
    source dask_env/bin/activate
    pip install dask==2023.2.0 distributed==2023.2.0 pandas==2.1.2
    
  3. 验证安装
    激活环境后执行以下代码测试:

    import dask.dataframe as dd
    from distributed import Client
    print("导入成功")
    

内容的提问来源于stack exchange,提问作者Waterkant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 15:32:41