错误:由于OSError:[Errno 28]设备上没有剩余空间,无法安装软件包。

4
我在使用以下命令在AWS EC2实例上安装Ubuntu 18的软件包时遇到了错误 - pip install -e . 错误信息为 - ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device 我检查了以下内容:
  1. 使用free -h命令检查了RAM。
  2. 使用sudo ncdu -x命令检查了磁盘利用率。
  3. 由于pip尝试下载到TMPDIR变量给出的默认位置,我还从该位置删除了文件。
  4. 我从.cache目录中删除了内容。
  5. 我从/tmp目录中删除了内容。
但我仍然面临这个问题。
1个回答

11

https://github.com/pypa/pip/issues/5816#issuecomment-425410189提供的答案中,指出:

pip 将文件下载到临时目录中,环境变量 TMPDIR 指定该目录,pip 还将文件放到缓存中,因此 --cache-dir 选项也很有用。--build 选项指定了构建 wheel 的目录,因此它的规范也很有用。

对于我的用户,我在主目录下创建了一个自定义目录 codebase/pip_cache/

首先,我尝试使用以下命令来运行 --no-cache-dir-

TMPDIR=/home/deepakahire/codebase/pip_cache/ pip install -e . --no-cache-dir。这没有起作用。

最后,我指定了 --cache-dir ,并使用以下命令安装软件包 -

TMPDIR=/home/deepakahire/codebase/pip_cache/ pip install --cache-dir=/home/deepakahire/codebase/pip_cache/ -e . 对我而言有效。

注意:盲目删除 /tmp 目录中的所有内容会删除您的 tmux 会话,但仍会在之前使用任何 tmux 会话打开过的端口上保留服务/实例。


谢谢,我认为这更符合较新版本的PIP,因为它抱怨无法识别“--build”。但是,我还必须在我的EC2上创建一个交换分区,因为仅从下载文件就会耗尽内存。 - Philip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接