Question or problem about Python programming:
I started learning Python 3.4 and would like to start using libraries as well as Google App Engine, but the majority of Python libraries only support Python 2.7 and the same with Google App Engine.
Should I learn 2.7 instead or is there an easier way? (Is it possible to have 2 Python versions on my machine at the same time?)
How to solve the problem:
No, It doesn’t.
[Editor’s note: As of Aug, 2018, this answer is outdated; see comments and other answers]
Google App Engine
(GAE) uses sandboxed
Python 2.7 runtime for
Python applications. That is the normal App Engine Hosting. However, in
GAE you can use Managed VM Hosting.
The Managed VM Hosting lets you run
GAE applications on configurable Google Compute Engine Virtual Machines. Giving you more flexibility. Managed VMs at the moment ,at Alpha phase, only support
Python 2.7 and
Go 1.4 runtime environments. To get other runtimes (like
Python 3 or
node.js) you can create user-configurable custom runtime.
Note: With Managed VMs you won’t have the capabilities of
Python 2.7 GAE libraries.
If you insist on using GAE, since
Python 3+is not viable, I would suggest learning 2.7 and switching to 3+ versions when GAE libraries gets ported to
Python 3+. You can easily switch to the other if you learn one of the versions.
runtime: python # vm: true has been deprecated # check how env:flex may affect your billing env: flex entrypoint: gunicorn -b :$PORT main:app runtime_config: python_version: 3
Yes. Python 3.7 is available as a Google App Engine standard runtime as of August 8, 2018.
YES! Google App engine supports python v3, you need to set up flexible environments.
I got a chance to deploy my application on app engine and It’s using python 3.6 runtime and works smoothly… 🙂
Google App engine support python runtimes up to versions python v3.7 (till today).
Python v3.7 runtime fully supported by standard environment. (Non-flexible environment) and PiP packages in requirements.txt is also supported by standard runtime, will automatically install dependencies declared in requirements.txt.
app.yaml configuration for Python v3.7 follows below.
runtime: python37 entrypoint: as you required.
It’s not required include runtime_config in app.yaml for python v3.7 standard environment.
In the standard environment, vendoring was necessary to install third-party libraries. This task is not needed in the flexible environment as the runtime will automatically install dependencies declared in requirements.txt, including dependencies that require native extensions.