【问题标题】:Could not install packages due to an EnvironmentError: [Errno 28] No space left on device由于 EnvironmentError 无法安装软件包:[Errno 28] 设备上没有剩余空间
【发布时间】:2019-08-01 20:15:34
【问题描述】:

我正在尝试安装

python -m spacy download en_vectors_web_lg

但它抛出错误:

Could not install packages due to an EnvironmentError: [Errno 28] No space left on device

我可以知道为什么会产生错误吗?是说我的目录没有足够的空间来安装吗??

【问题讨论】:

  • 这个包的大小是631mb,所以实际上可能是空间不够

标签: python spacy


【解决方案1】:

它很可能正在尝试将数据下载到您的 /tmp 临时位置。我的猜测是默认设置(通常是你的内存的一半)太小而无法处理下载。

您可以使用以下命令禁用tmp 挂载:systemctl mask tmp.mount。在执行此操作之前请小心并进行研究。

或者,您可以通过执行以下操作将您的 TMPDIR 目录设置为 /var/tmp export TMPDIR='/var/tmp'

【讨论】:

  • export TMPDIR='/var/tmp'也为我工作! ...增加/tmp 的大小不起作用
  • 或'sudo mount -o bind /mnt/yourbighd/tmp /tmp'
  • Windows 操作系统呢?
【解决方案2】:

正如上面提到的here,你可以创建一个你有足够空间的目录,比如/folder/address/here/,然后运行下面的命令来安装它:

TMPDIR=/folder/address/here/ pip install --cache-dir=$TMPDIR --build $TMPDIR package-name

由于我自己的案例是升级 tensorflow,所以我运行了这个:

TMPDIR=/folder/address/here/ pip install --upgrade --cache-dir=$TMPDIR --build $TMPDIR tensorflow

【讨论】:

  • 感谢您添加这个额外的配置开关。它使您的答案更加完整。
【解决方案3】:

我必须做一个system prune 以腾出更多空间。

docker system prune

请注意,这将“删除所有未使用的容器、网络、图像(包括悬空的和未引用的)以及可选的卷。”所以请确保你没有吹走任何你需要的东西。

【讨论】:

    【解决方案4】:

    如果您正在使用 docker 容器,我建议您弄清楚为什么您的 docker 已满,然后清空占用空间的所有内容。

    要弄清楚是什么占用了空间运行:

    docker system df

    运行之后:

    docker <container/image/builder> prune --all

    清理所有占用空间的东西。

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 2017-04-06
      • 2017-09-20
      • 1970-01-01
      • 2019-03-27
      • 2019-01-08
      • 2020-10-28
      • 2021-01-07
      • 2022-07-03
      相关资源
      最近更新 更多