0

So I am having quite a few issues getting this flask backend up. It is pretty standard stuff apart from some logic that recognizes audio delivered from the frontend. To do this, I incorporate PyDejaVu.

One of the dependencies(PyAudio) is not building correctly. Everything else is good to go.

Here are some logs:

Step #1:    #include "portaudio.h"
Step #1:                          ^
Step #1:   compilation terminated.
Step #1:   error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Step #1:   Failed building wheel for PyAudio

and

Command "/env/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-arQ8b7/PyAudio/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-4yefCE-record/install-record.txt --single-version-externally-managed --compile --install-headers /env/include/site/python2.7/PyAudio" failed with error code 1 in /tmp/pip-build-arQ8b7/PyAudio/
Step #1: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1
Finished Step #1
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/docker@sha256:0d9f13d75152530e2ee49bf3a3be3d6198b946f7315b3961994355a7aaee2925" failed: exit status 1
Step #1: 
------------

requirements.txt

PyAudio==0.2.9
PyDejaVu==0.1.3
werkzeug==0.14.1
flask-cors==2.1.2
flask-login==0.3.2
flask-oauthlib==0.9.2
flask-restful==0.3.5
flask-wtf==0.12
flask==0.12.2
flask-sqlalchemy==0.9
numpy==1.13.3
gunicorn==19.7.1

I followed the errors and apparently I have to install port-audio via apt-get but that obviously is not possible.

Any help is appreciated!

  • Can you share your "requirements.txt"? Also are you building your own docker image or you are using App Engine pre-built one? Deploying or running locally? https://cloud.google.com/appengine/docs/flexible/custom-runtimes/build – A.Queue Jan 31 '18 at 12:35
  • Yup added. Using the prebuilt container. And deploying. – riemannsolve Jan 31 '18 at 16:34

1 Answers1

1

Since App Engine flex is based on docker you'll have to install dependencies from the Dockerfile. In this case you'd have to customize the App Engine Python Dockerfile to add all the libraries PyAudio might need. You could look at some Dockerfiles containing PyAudio Sample1 & Sample2.

I could go over the error by adding the following dependencies and libraries in the Dockerfile:

RUN apt-get update && apt-get install -y \
        vim \
        curl \
        wget \
        git \
        make \
        netcat \
        python \
        python2.7-dev \
        g++ \
        bzip2 \
        binutils
###############################################################################
RUN apt-get install -y portaudio19-dev libopenblas-base libopenblas-dev pkg-config git-core cmake python-dev liblapack-dev libatlas-base-dev libblitz0-dev libboost-all-dev libhdf5-serial-dev libqt4-dev libsvm-dev libvlfeat-dev  python-nose python-setuptools python-imaging build-essential libmatio-dev python-sphinx python-matplotlib python-scipy
# additional dependencies
RUN apt-get install -y \
        libasound2 \
        libasound-dev \
        libssl-dev

RUN pip install pyaudio
Miller G.
  • 178
  • 6