问题解决:树莓派上Python用pip进行安装耗尽内存,卡死

在运行Python3的pip3或Python2的pip时,树莓派(Raspberry Pi 3,Ubuntu 18.04)经常因内存耗尽而卡死。问题发现是由于系统中其他程序导致内存溢出。尝试了网上建议的解决方案1无效,解决方案2是关闭其他程序,腾出更多内存,安装过程中内存消耗达到285M至330M。寻求了解为何特定程序会消耗如此多内存的原因。

我的树莓派版本是 Raspberry Pi 3,系统是 Ubuntu 18.04。
最近在树莓派上用Python3 的pip3进行安装时,经常会耗尽内存,卡死在那里不动了。

具体的效果如下:

-> # pip3 install grequests  
Collecting grequests
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from grequests)
Collecting gevent (from grequests)
  Using cached https://files.pythonhosted.org/packages/ed/27/6c49b70808f569b66ec7fac2e78f076e9b204db9cf5768740cff3d5a07ae/gevent-1.4.0.tar.gz
Requirement already satisfied: greenlet>=0.4.14 in /usr/local/lib/python3.6/dist-packages (from gevent->grequests)
Building wheels for collected packages: gevent
  Running setup.py bdist_wheel for gevent ... -

就是卡死在Running setup.py这一步。

然后我发现Python2的pip也会发生这个问题,于是我想找到问题的原因。

我用htop发现pip程序占用了系统150M的内存,因为系统以及有很多东西在跑了,所以内存直接炸了,溢出了。

解决方法1

在网上查阅资料后解决方法1如下:

pip3 --no-cache-dir install grequests  

但这个解决方法并不适合我

解决方法2

这个办法就是把其他程序关闭,给pip更多的内存。

然后安装时内存从430M-> 715M,消耗了整整285M内存。

消耗内存最多的是这个程序:

/usr/lib/gcc/aarch64-linux-gnu/7/cc1 -quiet -I build/temp.linux-aarch64-3.6/libev -I src/gevent/libev -I /tmp/pip-build-4_bg56_j/gevent/deps/libev -I /usr/include/python3.6m -imultiarch aarch64-linux-gnu -D_REENTRANT -D NDEBUG -D _FORTIFY_SOURCE=2 -D LIBEV_EMBED=1 -D EV_COMMON= -D EV_CLEANUP_ENABLE=0 -D EV_EMBED_ENABLE=0 -D EV_PERIODIC_ENABLE=0 src/gevent/libev/corecext.c -quiet -dumpbase corecext.c -mlittle-endian -mabi=lp64 -auxbase-strip build/temp.linux-aarch64-3.6/src/gevent/libev/corecext.o -g -g -O2 -Wall -Wformat=1 -Werror=format-security -Wdate-time -fwrapv -fstack-protector-strong -fPIC -fstack-protector-strong -Wformat-security -o /tmp/ccrWKAmy.s

有谁知道上面这个程序为什么消耗内存那么多的原因,请告诉我。

然后我尝试了pip install pwntools,内存从430M-> 760M,最多时消耗了整整330M内存。

占用最多的是这个程序:

/usr/lib/gcc/aarch64-linux-gnu/7/cc1 -quiet -I include -imultiarch aarch64-linux-gnu -D CAPSTONE_USE_SYS_DYN_MEM -D CAPSTONE_HAS_ARM -D CAPSTONE_HAS_ARM64 -D CAPSTONE_HAS_M68K -D CAPSTONE_HAS_MIPS -D CAPSTONE_HAS_POWERPC -D CAPSTONE_HAS_SPARC -D CAPSTONE_HAS_SYSZ -D CAPSTONE_HAS_X86 -D CAPSTONE_HAS_XCORE -D CAPSTONE_HAS_TMS320C64X -D CAPSTONE_HAS_M680X -D CAPSTONE_HAS_EVM arch/AArch64/AArch64Disassembler.c -quiet -dumpbase AArch64Disassembler.c -mlittle-endian -mabi=lp64 -auxbase-strip arch/AArch64/AArch64Disassembler.o -O3 -Wall -Wwrite-strings -fPIC -fvisibility=hidden -fstack-protector-strong -Wformat-security -o /tmp/ccUmZ7Pr.s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值