pythonpandasgoogle-app-engineapp-engine-flexible

How do I use the latest version of pandas on Google App Engine Flexible


I am using Google App Engine Flexible with a standard Python 3 runtime. I had been using pandas 1.0.5 until now. I want to start using pandas 1.3.4. So I updated requirements.txt and tried deploying to GAE. I got an error

Step #1: ERROR: Could not find a version that satisfies the requirement pandas==1.3.4 (from -r requirements.txt (line 16)) (from versions: 0.1, 0.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.16.1, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0, 0.19.1, 0.19.2, 0.20.0, 0.20.1, 0.20.2, 0.20.3, 0.21.0, 0.21.1, 0.22.0, 0.23.0, 0.23.1, 0.23.2, 0.23.3, 0.23.4, 0.24.0, 0.24.1, 0.24.2, 0.25.0, 0.25.1, 0.25.2, 0.25.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5)
Step #1: ERROR: No matching distribution found for pandas==1.3.4 (from -r requirements.txt (line 16))
Step #1: WARNING: You are using pip version 20.2.2; however, version 21.3.1 is available.
Step #1: You should consider upgrading via the '/env/bin/python -m pip install --upgrade pip' command.
Step #1: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1
Finished Step #1
ERROR

I see that the latest pandas version it lists is 1.1.5, even though pandas 1.3.4 is available.

  1. How often does GCloud update the package versions that are available on its standard runtimes?

  2. Is the version availability related to the version of pip that is part of the custom runtime?

  3. Is there any way I can use the latest version of packages without having to build a custom runtime?


Solution

  • My original app.yaml had python_version: 3. The Google Cloud docs here state that python_version: 3 in app.yaml refers to Python 3.7.2. However, the build logs contained a line RUN virtualenv --no-download /env -p python3.6.

    SOLUTION: Change the config to python_version: 3.7. Now the corresponding line in the build log says RUN virtualenv --no-download /env -p python3.7.