I'm trying to deploy a service on Google AppEngine Python 3.7 standard environment, which requires a set of libraries as dependencies. One of the dependencies (GDAL 2.2.2) cannot be deployed returning error message:
File upload done.
Updating service [pycloud-wms]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build 04c3dcfd-
230d-44ad-981a-8819a5f60130 status: FAILURE.
Error ID: 9E195939.
Error type: InternalError.
Error message: `pip_download_wheels` had stderr output:
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-wheel-p30r4tj3/gdal/
error: `pip_download_wheels` returned code: 1.
I'm wondering about the reason for this error and also if anyone knows a way of solving this problem on GAE.
NOTE: I know I can deploy my application using GAE Flexible environment using a container, but the price difference between both approaches is quite substantial.
The dependencies in the Google App Engine Python3.7 runtime are installed using the Python package manager pip
.
To install a Python package in the GAE Standard Python3.7 runtime it needs to be offered as a pip-installable Python library.
The GDAL package is installable via pip
, but it requires the libgdal
and gdal-devel
platform packages to be installed, which don't come in the base runtime for App Engine Standard Python3.7 runtime.
The solution is to use the GAE Flex environment and install these platform-level dependencies first.