为了使用 Dask 并行数据帧(构建在 pandas 之上),您必须告诉 pip 安装一些“额外的”(参考 https://packaging.python.org/installing/#installing-setuptools-extras),如文中提到的Dask安装文档 http://dask.pydata.org/en/latest/install.html#pip:
pip install "dask[dataframe]"
或者你可以这样做
pip install "dask[complete]"
获得整套技巧。注意:您的 shell 中可能需要也可能不需要双引号。
Dask 文档中提到(或曾经)提到过这样做的理由:
我们这样做是为了让轻量级核心 dask 调度程序的用户不需要下载集合的更奇特的依赖项(numpy、pandas 等)
正如中提到的奥宾娜的回答 https://stackoverflow.com/a/54333641/785213,您可能希望在 virtualenv 中执行此操作,或者使用pip install --user
将库放在您的主目录中,例如,如果您没有主机操作系统的管理员权限。
额外细节
在 Dask 0.13.0 及更低版本中,有一个要求toolz https://github.com/pytoolz/toolz/' identity
内的功能dask/async.py
。有与 GitHub 关联的开放封闭拉取请求问题 #1849 https://github.com/dask/dask/issues/1849来消除这种依赖性。 同时 如果由于某种原因,您无法使用旧版本的 dask,您可以解决此问题that通过简单地执行特定问题pip install toolz
.
但这并不能(完全)解决你的问题import dask.dataframe as dd
反正。因为你仍然会得到this error:
>>> import dask.dataframe as dd
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/path/to/venv/lib/python2.7/site-packages/dask/dataframe/__init__.py", line 3, in <module>
from .core import (DataFrame, Series, Index, _Frame, map_partitions,
File "/path/to/venv/lib/python2.7/site-packages/dask/dataframe/core.py", line 12, in <module>
import pandas as pd
ImportError: No module named pandas
或者如果你已经安装了 pandas,你会得到ImportError: No module named cloudpickle
. So, pip install "dask[dataframe]"
如果您处于这种情况,这似乎是您要走的路。