Dask Distributed安装需同时安装dask和distributed包,推荐命令为python -m pip install dask distributed --upgrade;conda用户应使用conda install dask distributed -c conda-forge以避免TLS依赖问题;生产环境须显式启动scheduler与worker,禁用Client()自动集群模式。

直接用 pip install dask distributed --upgrade 最稳
Linux 上安装 Dask 分布式计算,核心就是装 dask 和 distributed 两个包。别只装 dask —— 它默认不带分布式调度器,distributed 才是跑集群的关键组件。
推荐命令(Python 3.8+ 环境下):
python -m pip install dask distributed --upgrade
注意点:
-
--upgrade能避免旧版本残留导致的Client连不上调度器、dashboard报 404 等问题 - 如果系统 Python 是 yum/apt 装的(比如 CentOS 的
python3),优先用python3 -m pip而不是pip3,避免 pip 指向错解释器 - 不用加
[complete]—— 那个是旧版打包方式,现在distributed已独立,且自带全部依赖(如bokeh、msgpack、tls支持)
conda 用户该用 conda install dask distributed -c conda-forge
如果你用 conda 管理环境(尤其是 Anaconda/Miniconda),conda install 比 pip 更可靠,尤其在涉及 OpenSSL、zlib 等底层依赖时。
执行:
conda install dask distributed -c conda-forge
原因:
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
- conda-forge 渠道的
distributed包预编译了 TLS 支持,省去手动装openssl-devel和重编译 Python 的麻烦 - 避免出现
ImportError: cannot import name 'SSLContext'或AttributeError: module 'ssl' has no attribute 'create_default_context' - 若已装过 pip 版本,先
pip uninstall dask distributed再用 conda 装,否则可能混用导致Client初始化失败
启动本地集群前必须确认 Python 能访问网络和本地端口
装完不代表能跑。Dask Distributed 默认启动 dask-scheduler 在 127.0.0.1:8786,worker 连它;Dashboard 在 :8787。常见卡点:
-
Client()卡住或报OSError: [Errno 99] Cannot assign requested address:检查是否禁用了 IPv6 但代码仍尝试绑定::;加参数host='127.0.0.1' - 浏览器打不开
http://127.0.0.1:8787:确认没被防火墙拦住(sudo ufw status),或 SELinux 强制限制(setsebool -P nis_enabled 1临时放开) - worker 启动时报
Connection refused:先单独跑dask-scheduler,再开新终端跑dask-worker 127.0.0.1:8786,别跳步
生产环境别用 Client() 自动启集群
from dask.distributed import Client; client = Client() 看起来方便,但它会在后台静默拉起 scheduler + worker,端口随机、日志不落盘、无法配置 TLS —— 只适合开发验证。
真要部署,必须显式启服务:
dask-scheduler --host 0.0.0.0 --dashboard-address :8787 & dask-worker 192.168.172.131:8786 --nworkers 4 --nthreads 2 &
关键参数说明:
-
--host 0.0.0.0:允许其他机器(如 worker 节点)连接,不能只写127.0.0.1 -
--dashboard-address:单独指定 dashboard 地址,避免和 scheduler 端口冲突 -
--nworkers和--nthreads要根据 CPU 核数设,别盲目填满;超线程开启时,--nthreads 2通常比4更稳
多节点部署时,dask-worker 命令里的地址必须是 scheduler 所在机器的真实局域网 IP,不是 localhost 或 127.0.0.1 —— 这个错最常被忽略。

















