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?
Running your application locallySelect File > Open to open the project you want to run. Browse to the directory containing your project. Select Tools > Cloud Code > App Engine Run on a local App Engine Standard dev server.
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
Adding an updated answer (in 2022)
Google App Engine supports running Python 3 Apps using dev_appserver.py
(not for Windows though)
Per their documentation, ....To run dev_appserver with a Python 3 interpreter, you must specify the --runtime_python_path=[PATH_TO_PYTHON3_BINARY] flag
....
Some of the bundled services (built-in APIs) like User, Memcache, Datastore, Namespace Manager are also now available for Python3 Apps. When you enable them and use dev_appserver.py
to run your Python3 App, you get the same behavior you're used to in Python2 i.e. you will get a simulated datastore, memcache, users, etc
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With