Pip 安装终止

我正试图在 Ubuntu 服务器上安装带 pip 的软件包:

$ pip install MySQLdb
Downloading/unpacking MySQLdb
Killed

它正在被杀死。服务器上有足够的空闲内存。为什么它被杀死?

日志:

内存不足: 杀死进程6627(pip)得分297或牺牲子进程

这很奇怪,因为我有大约150mb 的空闲内存。

44548 次浏览

你必须检查日志,这取决于 ubuntu 和其他东西的版本,它应该在 /var/log/messages或者至少在 /var/log中,这样你就可以在那个文件夹中访问 python 或 pip。这应该会提供一些提示。

另外,如果您不在 viralenv 中,那么您可能应该使用 sudo来执行(隐式的)特权操作,比如将库复制到全局 lib 文件夹中。

如果内存不足,可以尝试使用 pip install <your-package-name> --no-cache-dir

如果 --no-cache-dir标志还不够,请尝试增加交换空间。

我试图在一个有2GB 内存和512个交换空间的 Linode 服务器上安装 PyTorch。添加2GB 的交换空间解决了这个问题。

方法 # 3: 创建交换文件。

  1. 在当前文件系统上创建一个交换文件,例如在 root 上,为此可以创建一个新的 Directory。 $sudo mkdir/swap
  2. 在这个新目录中创建一个新文件,在本例中创建一个2Gb 的新文件。 $sudo dd if =/dev/zero of =/swapfile1 bs = 1M count = 2048
  3. 在已创建的文件上创建一个新的交换区域。 $sudo mkswap/swap/swapfile1
  4. 更改文件的权限。 $sudo chmod 600/swap/swapfile1
  5. 将交换分区添加到/etc/fstab 文件,如下面步骤所示: /swapfile1交换交换默认值为00
  6. 加载为实例创建的新交换空间。 $sudo swapon-a

指南来源: 极客日记

第一步:

pip install package --no-cache-dir 如果问题仍然存在,请转到步骤2。

第二步:

sudo swapoff -a

sudo swapon -a

然后再试第一步。

在我的案例中,使用 pip3 cache purge清除 pip 缓存是解决方案,但是要小心: 它删除了整个 pip 缓存。

我有足够的空闲内存在空闲状态(~ 3Gb) ,但安装火炬被杀死一次又一次,甚至没有显示下行进度:

Collecting torch>=1.5.0
Killed

所以我假设,就像@embiem 猜测的那样,我在缓存中损坏了文件,因为我曾经中止过一次模块的依赖关系的安装。在清除了整个 pip 缓存之后,安装成功了(释放了15GB 的空闲磁盘空间——我使用了很多虚拟环境)。你可以使用 pip3 cache info和所有缓存管理命令 pip3 cache -h检查简短信息,在某些情况下非常有用。

在将 torch作为依赖项之一安装时,我遇到了同样的问题。我检查了在安装过程中,它超出了日志所报告的 RAM 利用率。在我的情况下,在高峰期,它增加了内存使用几乎 + 3 GB。

我只是关闭了我的6GB 笔记本电脑上几乎使用1GB 的 Firefox 实例,然后再次运行 pip install,它工作了。

我正面临着这个错误和过程中被扼杀的火炬包。 然后我浏览了网页,找到了解决办法。

cd ~/.cache
mv pip pip.bk

这清除了与 pip 相关的缓存内存。卸载和安装 pip 没有帮助。