繁体   English   中英

Dask 的默认 pip 安装给出“ImportError: No module named toolz”

[英]Default pip installation of Dask gives "ImportError: No module named toolz"

我使用 pip 安装了 Dask ,如下所示:

pip install dask

当我尝试import dask.dataframe as dd时,我收到以下错误消息:

>>> 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/__init__.py", line 5, in <module>
    from .async import get_sync as get
  File "/path/to/venv/lib/python2.7/site-packages/dask/async.py", line 120, in <module>
    from toolz import identity
ImportError: No module named toolz
No module named toolz

我注意到文档指出

pip install dask :只安装 dask,它只依赖于标准库。 如果您只需要任务调度程序,这是合适的。

所以我很困惑为什么这不起作用。

为了使用 Dask 的并行化数据帧(构建在 Pandas 之上),您必须告诉 pip 安装一些“额外”( 参考),如Dask 安装文档中所述

pip install "dask[dataframe]"

或者你可以这样做

pip install "dask[complete]"

得到一整套技巧。 注意:shell 中可能需要也可能不需要双引号。

Dask 文档中提到了(或曾经)对此的理由:

我们这样做是为了让轻量级核心 dask 调度程序的用户不需要下载集合(numpy、pandas 等)的更奇特的依赖项。

正如Obinna 的回答中所述,您可能希望在 virtualenv 中执行此操作,或者使用pip install --user将库放在您的主目录中,例如,如果您没有主机操作系统的管理员权限。

额外的细节

在 Dask 0.13.0 及以下版本中,需要在dask/async.py使用toolzidentity功能。 一个 与 GitHub问题 #1849相关 的打开 关闭拉取请求来删除此依赖项。 同时, 如果由于某种原因,您坚持使用旧版本的 dask,您可以通过简单地执行pip install toolz来解决特定问题。

但这不会(完全)解决您import dask.dataframe as dd的问题。 因为您仍然会收到错误:

>>> import dask.dataframe as dd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/data/staff_agbio/PhyloWeb/data/dask-test/venv/local/lib/python2.7/site-packages/dask/dataframe/__init__.py", line 3, in <module>
    from .core import (DataFrame, Series, Index, _Frame, map_partitions,
  File "/data/staff_agbio/PhyloWeb/data/dask-test/venv/local/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 因此,如果您处于这种情况, pip install "dask[dataframe]"似乎是要走的路。

我有同样的问题,这就是为我解决的问题。

  1. 为您的项目创建一个虚拟环境
  2. cd 您的项目目录(如果您擅长目录导航,则不需要)
  3. 激活你的虚拟环境
  4. pip install "dask[complete]" :这将安装所有内容。 你可能希望只安装一个给定的组件,比如pip install "dask[dataframe]" ,然后使用pip install "dask[dataframe]"

底线是我必须在我的虚拟环境中; 这将仅为此环境安装 dask。

就我而言,在 Windows 机器上使用 anaconda,以下是解决此问题的步骤:

  1. conda 安装 dask
  2. conda 安装 dask-core
  3. 根据github评论安装!pip install tornado==5.0.0分布式==2.15 dask-ml[完整]
  4. 重新启动我的蟒蛇。

使用以下命令。

pip install "dask[dataframe]"

requeriments.txt 工作:

awscli==1.16.69
botocore=1.13.0
boto3==1.9.79
numpy==1.16.2
dask[complete]

你可以检查下面的ss:

我得到的错误

暗版

您可以像这样解决这种情况:

  1. 从 pypi https://pypi.org/project/dask/2022.5.0/ 找到 daskpack

  2. 为从要求中选择的 dask 版本检查所需的 python 版本。

  3. 从 pypi dask 页面的发布历史页面中找到适合您的 python 版本的 dask package。

  4. Go 回到 colab 并完全删除 dask !pip uninstall dask

  5. 安装刚才找到的dask版本例子:.pip install dask==2022.2.0

  6. 您的 dask 版本应该与您的分布式版本相同。 为此,请从 pypi 中找到与您的 dask 版本相对应的分布式版本

  7. 从 colab 分发的卸载 !pip 分发的卸载

  8. 安装适当的分布式版本,例如:.pip install Distributed==2022.2.0

  9. 安装自动sklearn pip 安装自动sklearn

注意:必须为每个 colab notebook 安装 auto-sklearn,由于 colab 会在 12 小时后删除这些更改,因此必须从头开始安装。

脚注:你可以纠正我的错误和遗漏。 我希望问题已为您解决,因为它已为我解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM