AWS EC2 1GB实例安装statsmodels遇MemoryError问题求助
解决1GB内存EC2实例安装statsmodels的MemoryError问题
碰到1GB内存的EC2实例装statsmodels报MemoryError太正常了——这类包在安装时(尤其是pip编译源码阶段)会占用不少内存,刚好1GB的内存很容易被耗尽。结合你已经装了Anaconda的情况,给你几个实用的解决方案:
1. 先给实例加个交换分区(最有效)
EC2默认一般没开交换空间,加个虚拟内存能直接缓解内存不足的问题:
- 创建一个2GB的交换文件(足够应对安装需求):
sudo fallocate -l 2G /swapfile - 限制交换文件的访问权限(安全要求):
sudo chmod 600 /swapfile - 格式化为交换分区:
sudo mkswap /swapfile - 启用交换分区:
sudo swapon /swapfile - (可选)设置开机自动挂载交换分区,避免重启后失效:
编辑/etc/fstab文件,添加下面一行内容:
然后执行/swapfile swap swap defaults 0 0sudo mount -a验证配置生效。
加完交换分区后,再用Anaconda安装statsmodels就轻松多了:
conda install statsmodels
2. 用conda预编译包替代pip源码编译
如果你之前试过用pip安装,大概率是因为pip需要从源码编译statsmodels,这过程太吃内存。而conda的包都是预编译好的,安装时内存占用小很多。如果conda默认源速度慢,也可以直接指定conda-forge源:
conda install -c conda-forge statsmodels
3. 优化pip安装的内存占用(万一你不想用conda)
要是坚持用pip,试试这两个参数减少内存消耗:
- 禁用缓存,避免缓存文件占用额外内存:
pip install --no-cache-dir statsmodels - 跳过构建隔离,前提是你已经装好了所有依赖(比如cython、numpy这些你已经有了):
pip install --no-build-isolation statsmodels
关于你删除Anaconda安装脚本的问题
完全不用慌!你已经成功安装了Anaconda,那个.sh安装文件只是安装时的临时脚本,删除它对现有Anaconda的使用没有任何影响。之后如果需要重装Anaconda,再去官网下载对应版本的安装脚本就行,当前解决statsmodels的问题根本不需要它。
内容的提问来源于stack exchange,提问作者Hirotaka Nakagame
相关产品推荐
相关产品推荐

