点安装 - 杀死

Posted

技术标签:

【中文标题】点安装 - 杀死【英文标题】:pip install - killed 【发布时间】:2015-08-13 12:56:46 【问题描述】:

我正在尝试在 Ubuntu 服务器上使用 pip 安装软件包:

$ pip install mysqldb
Downloading/unpacking MySQLdb
Killed

而且它正在被杀死。服务器上有足够的可用 RAM。为什么会被杀?

UPD 日志:

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

这很奇怪,因为我有大约 150 mb 的可用 RAM。

【问题讨论】:

/var/log/kern.log 中的任何内容?或者运行tail -f /var/log/kern.log 并再次尝试安装。 另一方面,包名实际上是 mysql-python 但这并不能解释您的输出 问题解决了吗? 【参考方案1】:

您必须检查日志,具体取决于 ubuntu 的版本和其他东西,它应该在 /var/log/messages 或至少在 /var/log 中,以便您可以在该文件夹中 grep python 或 pip。这应该提供提示。

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

【讨论】:

我在 virtualenv 中,仍然必须使用 sudo 才能成功完成安装。感谢您的解决方案! 在 virtualenv 中使用 sudo 听起来您的设置存在严重问题。你确定 pip 来自你的 virtualenv 吗?【参考方案2】:

如果您的内存不足,您可以尝试使用pip install package --no-cache-dir

【讨论】:

我很震惊这有助于降低 RAM,但它有帮助 谢谢,这对我有用!我在之前的安装尝试中内存不足,然后腾出了更多空间,随后的安装尝试只是打印“Killed”。我猜它是从缓存中读取损坏的文件? 已确认解决方案(也适用于 tensorflow 和 mysql),@artem 应将其检查为正确答案 也适用于 opencv-python。 这解决了我在 vps 服务器上的 tensorflow【参考方案3】:

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

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

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

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

指南来源:TheGeekDiary

【讨论】:

如果您只是暂时需要交换空间,您可以跳过步骤 5 并将步骤 6 替换为 sudo swapon /swap/swapfile1,然后在完成后运行 swapoff /swap/swapfile1 以禁用交换,然后您可以清理文件并如果您已完成整个文件夹,请使用 rm /swap/swapfile1rm -rf /swap 取回空间。【参考方案4】:

第一步:

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

第二步:

sudo swapoff -a

sudo swapon -a

然后再试第 1 步。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案5】:

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

我有足够的空闲 RAM 处于空闲状态 (~3Gb),但安装 Torch 一次又一次地被杀死,即使没有显示下载进度:

Collecting torch>=1.5.0
Killed

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

【讨论】:

以上是关于点安装 - 杀死的主要内容,如果未能解决你的问题,请参考以下文章

Plotly 杀死了我的 python 安装

节点立即被杀死 - MacOS

当 Android 主屏幕 PWA 被杀死时,Cookie 会话被破坏

“端口 4200 已在使用中”。杀死与 4200 相关的所有进程都不起作用。

Linux查看并杀死被占用的端口

MacOs日常使用笔记