由于环境环境,无法安装软件包:[ERRNO 28]设备上没有剩余的空间



我正在尝试安装

python -m spacy download en_vectors_web_lg

但正在投掷错误:

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

我可以知道为什么会造成错误?是说我没有目录中的Enogh空间要安装??

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

您可以使用以下命令:systemctl mask tmp.mount禁用tmp安装。请小心,然后进行研究。

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

我必须做一个系统修剪才能制作更多空间。

docker system prune

请注意,这将"删除所有未使用的容器,网络,图像(悬挂和无引用)以及可选的卷。"因此,请确保您不会吹走任何需要的东西。

如下所述,您可以创建一个有足够空间的目录,例如/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

如果您在码头容器上工作,我建议您弄清楚为什么您的Docker已满,然后清空任何占用空间的东西。

找出空间运行的是什么:

docker system df

运行之后:

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

清洁任何占所有空间的东西。

如果您使用的是Ubuntu,也可以尝试

sudo apt-get clean

这将清除您的软件包缓存。此后尝试安装软件包(对我有用)。

上面的方法在我的Linux Ubuntu计算机上不起作用。

最终起作用的解决方案是:

  1. 重新启动计算机

  2. 重命名/TMP为old.tmp,并创建一个新/TMP文件夹。这个想法来自这篇文章,命令如下:

    mv/tmp/old.tmpMKDIR/TMPCHMOD 1777/TMP

我想这个问题是/tmp文件夹中的文件太多。

请注意,在/TMP文件夹中重新启动具有太多文件的计算机时,计算机可能会卡住。为了解决这个问题,这篇文章很有用。简而言之,编辑重新启动选项并将" ro ..."更改为'rw init =/bin/bash',这样您将在重新启动时快速看到bash终端。

对于那些在命令行的紧张并使用Windows或MacOS的人,启动Docker Desktop。查看Images。这将向您显示所有图像在内的列表,包括其状态。状态Unused (dangling)可能是您要摆脱的全部。只需选择并删除。

为什么我要推荐GUI方法?因为docker prune'删除了所有未使用的容器,网络,图像(悬挂和未参考),以及可选的卷。"这不一定是您想要的ESP。当您是新来的时。例如,Unused表示Not Currently In Use At the Moment不是 no longer usefulnot ever going to be used again,您可能会期望从Docker开始时。

最新更新