'gcc' 在 AWS Elastic Beanstalk 上构建 pandas 期间失败

'gcc' failed during pandas build on AWS Elastic Beanstalk

尝试在 AWS Elastic Beanstalk EC2 实例上安装我的 requirements.txt 文件中的 Pandas (0.16.0) 时出现以下错误:

  building 'pandas.msgpack' extension

  gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -D__LITTLE_ENDIAN__=1 -Ipandas/src/klib -Ipandas/src -I/opt/python/run/venv/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c pandas/msgpack.cpp -o build/temp.linux-x86_64-2.7/pandas/msgpack.o

  gcc: error trying to exec 'cc1plus': execvp: No such file or directory

  error: command 'gcc' failed with exit status 1

我 运行 在 64bit Amazon Linux 2015.03 v1.3.0 running Python 2.7 之前 运行 在 t1.micro 实例上遇到同样的错误,当我更改为 m3.medium,但我是 运行 一个 m3.xlarge,所以不会是内存问题。

我还确保 gcc 作为软件包安装在 .ebextensions/00_gcc.config:

packages:
   yum:
      gcc: []
      gcc-c++: []

安装python-dev

sudo apt-get install python-dev

对于python3

sudo apt-get install python3-dev

对于在 Elastic Beanstalk 上编译的 pandas,确保有两个包:gcc-c++ python-devel

packages:
   yum:
      gcc-c++: []
      python-devel: []

在 ec2 实例上,如果您 运行 进入 gcc 错误;试试这个

  1. sudo yum install gcc python-setuptools python-devel postgresql-devel

  2. sudo su -

  3. sudo pip 安装

我不得不升级亚马逊的 EC2 pip。您可以通过编辑 .ebextensions 中的 .config 文件来执行此操作:

sh commands: 00_update_pip: command: "/opt/python/run/venv/bin/pip install --upgrade pip"

我通过 ssh 连接到 EBS 机器并更新 pip 解决了这个问题

pip install -U pip