Search code examples
pythonpython-3.xgoogle-app-enginegoogle-app-engine-python

How to use Python 3 with Google App Engine's Local Development Server


I've got a local Python application configured with

runtime: python

in it's app.yaml file. When starting the local development server with

dev_appserver.py app.yaml

all is fine.

Since GAE's Local Development Server uses Python2.7 by default, I now want to make use of Python3.x instead. According to Google's documentation, we have to use the flexible environment. Thus I'm changing app.yaml to:

runtime: python
env: flex

runtime_config:
  python_version: 3

Now dev_appserver.py app.yaml spits out:

Under dev_appserver, runtime:python is not supported for Flexible environment.

The problem can be reproduced with Google's Hello World application that uses the flexible environment as well.

So locally we can't use Python3? How can we then run my Python3 code locally before uploading it?


Solution

  • Using the Local Development Server is applicable to the first generation standard environment apps only.

    For running locally flexible env apps see Running locally:

    You run your application locally with the native development tools that you usually use.

    For example, you can usually run a Flask application with Flask's development server using:

    python main.py
    

    Django applications can be started using:

    python manage.py runserver
    

    Related: How to tell if a Google App Engine documentation page applies to the standard or the flexible environment

    Update:

    Support for the 2nd generation standard environment is limited, see Python 3.7 Local Development Server Options for new app engine apps