当我在 PyCharm 中手动停止脚本时,进程以退出代码 137 结束。但我没有停止脚本。仍然得到退出代码 137。有什么问题?
Python 版本为 3.6,运行 xgboost.train() 方法时处理完成。
SIGKILL
(信号 9)杀死。发生这种情况的原因有很多,但通常是由于内存使用过多。
退出代码 137 表示您的进程被 (signal 9) SIGKILL
杀死。如果您手动停止它 - 这就是您的答案。
如果您没有手动停止脚本并且仍然收到此错误代码,则该脚本已被您的操作系统杀死。在大多数情况下,它是由过多的内存使用引起的。
{在我的经验中}
这是因为内存问题。当我尝试使用 sklearn fit 与完整数据集训练 ml 模型时,它会突然中断并给出,而对于小数据它可以正常工作。
进程以退出代码 137 结束(被信号 9:SIGKILL 中断)有趣的是,这也没有在 Exception 块中捕获
如果您在 Ubuntu 中,请增加 SWAP 内存。它会起作用的。使用 htop 查看 SWAP 使用情况,当它已满时,会报错 137。
这并不总是内存问题。在我的情况下,使用了 subprocess.Popen
并将错误抛出为 137,这看起来像 signalKILL ,原因绝对不是内存利用率,因为在运行时它几乎没有使用 1% 的内存使用。经过更多调查,这似乎是一个权限问题。我只是将脚本从 /home/ubuntu
移动到根目录。
我有同样的错误。在我的情况下与过多的内存使用有关。在重置/清理我的缓存数据后解决,为每个不再使用的变量添加以下代码:
MyVariableName = None
del myVariableName
来清除变量。这使得它不再在范围内并导致它被垃圾收集。
我最近在 M1 Mac Mini 上安装 PyCharm 时遇到了这个错误。它伴随着一个错误,说我的 SDK 在编译项目时无效。事实证明,这是由于我的 Python 解释器被指向了一个奇怪的目录,我不是 100% 知道这是怎么发生的。
我去了 Preferences > Project:yourProject > Python Interpreter 并从下拉列表中选择了一个有效的 SDK(在我的例子中是 Python 3.8)。你会知道这个包是有效的,因为它会用包填充下面的包列表。
同样,不确定它是如何在安装时发生的,但这解决了它。
就我而言,我的 RAM 用完了,无论是真实的还是虚拟的。
将您的数据拆分成小块或扩展您的虚拟内存。
我选择后者。
以下 scipts 在我的 ubuntu 20.04 TLS 上工作。
# disable the use of swap
sudo swapoff -a
# create the SWAP file. Make sure you have enough space on the hard disk.
# here is my size, the total size is bs*count B
sudo dd if=/dev/zero of=/swapfile bs=1024 count=136314880 status=progress
# output:
# 139458259968 bytes (139 GB, 130 GiB) copied, 472 s, 295 MB/s
# 136314880+0 records in
# 136314880+0 records out
# 139586437120 bytes (140 GB, 130 GiB) copied, 472.372 s, 296 MB/s
# Mark the file as SWAP space:
sudo mkswap /swapfile
# output:
# Setting up swapspace version 1, size = 130 GiB (139586433024 bytes)
# no label, UUID=25a565d9-d19c-4913-87a5-f02750ab625d
# enable the SWAP.
sudo swapon /swapfile
# check if SWAP is created
sudo swapon --show
# output:
# NAME TYPE SIZE USED PRIO
# /swapfile file 130G 0B -2
# Once everything is set, you must set the SWAP file as permanent, else you will lose the SWAP after reboot. Run this command:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
运行进程后,内存会增长。
这是我的:
https://i.stack.imgur.com/73KTd.png
祝你好运!
我的 python 进程被 137 错误代码杀死,因为我的 Docker for Windows 内存限制设置得太低。
如果其他人在 mac 上安装 pycharm 并在执行简单的 print('test') 命令时在 PyCharm 错误中得到代码 137,那肯定是因为创建的新项目中存在解释器的路径。我相信的错误是因为 python 是通过 brew 安装的,并且它没有显示在“Python X.YZ /Library/Frameworks/Python.framework/Versions/X.YZ/bin/pythonX”路径中解决卸载安装的 python 版本使用 brew 然后手动安装它。现在它将出现在“首选项->项目-> Python解释器->齿轮符号->添加基本解释器”下的解释器路径下,将其指向/Library/Frameworks/....路径下
单击齿轮图标。然后将 Poetry 环境设置为 Python 3.x。单击确定并应用。
现在代码可以运行而不会显示任何错误!
不定期副业成功案例分享