Python 3 for Google App Engine - google-app-engine

I've started an App Engine Project with Python 2.7 but had already be used to working on Python 3.
Does anyone know if there are any plans for Google's App Engine to work with Python 3?

App Engine's new (and currently beta) Flexible environment supports Python 3.4.

On August 10, 2016, Google Cloud Platform Blog announced that Python 3 was in beta on Google App Engine:
Developers running Python on Google App Engine have long asked for support for Python 3 and third-party Python packages. Today we're excited to announce the beta release of the Python runtime on App Engine Flexible Environment with support for Python 3.4 and 2.7. You can now develop applications in the Python version you prefer and create performant mobile and web backends using the frameworks and libraries of your choice. Meanwhile, developers benefit from App Engine's built-in services, such as autoscaling, load balancing, microservices support and traffic splitting and hence can focus on their code and not worry about infrastructure maintenance.

Yes there are plans, see
https://code.google.com/p/googleappengine/issues/detail?id=909
(well, it's not really a concrete plan, but its an open issue and Google has acknowledged it's existance)
However, because Python 2.7.x and Python 3.x are quite similar, the priority to implement Python 3.x support from Google's perspective isn't very high. It's likely a massive amount of work to support it, and it isn't really a critical issue. Don't expect Python 3.x to be supported anytime soon.

Related

Google Eclipse Plugin is Gone?

This morning, I tried to get a coop student up and running on an older version of the Google App Engine for Eclipse plugin.
The following website and all related links appear to have been wiped off the face of the earth:
https://developers.google.com/eclipse/
Is this just down at the moment?
Is it possible to get older versions of the plugin?
While it is correct that the Google Plugin for Eclipse has been removed from Google's documentation, it is still available.
To install it, in Eclipse Neon, click "Install new Software" and add in this URL.
http://dl.google.com/eclipse/plugin/4.6
Next, click through the dialogues to allow the installation, and restart Eclipse.
While Google has chosen to stop supporting this, I personally feel that the new Cloud Tools for Eclipse plugin is just not ready. Also, in the early days, JDO was what many people were using on top of the data layer, and since GAE has been around for 10+ years, many of us have a lot of infrastructure built on top of this that is costly to change. While it's still possible, in theory, to run the DataNucleus enhancer manually, it's a huge pain that requires in-depth knowledge of the inner workings of GAE and DataNucleus and knowledge of which dependencies go together. It may have been well-documented in the past, but today it is not.
But be warned, one of our engineers recently lost the ability to deploy the project to Google App Engine using the GPE and was forced to use the gcloud tool, which doesn't seem to have sensible defaults, like deploying to a non-default version and instead will deploy straight to default, well, by default. So we're writing a script around that command that will pass in --no-promote so it doesn't immediately start migrating traffic... Visit the gcloud reference for app deploy for more details. Good luck!
For more information on the install process, please see How to install Google Plugin for Eclipse on mkyong.com.
GPE is indeed gone. It was not up to date and many parts of it no longer functioned. Over the coming year, even more core functionality was going to break. We wouldn't be doing anyone any favors by letting them invest their time in a broken tool. This is doubly true for new users such as your students. There are some old GPE snapshots floating around here and there, but those don't really work with GCP in 2018.
That official documentation is most likely gone for good, the plugin was deprecated in favour of the Google Cloud Tools for Eclipse. From Migrating from the Google Plugin for Eclipse:
The Google Plugin for Eclipse is deprecated and will not be supported
beyond Eclipse 4.6 (Neon). It will be removed in early 2018.
This document describes how to migrate a project that uses the Google
Plugin for Eclipse to the supported tooling.
You can check the snapshots of the docs on the Wayback Machine, and maybe still find the matching code repositories, if they haven't been removed as well.
But it's probably a good idea to switch to the supported tools sooner than later, especially since they're just getting started.
Related: Migrating GAE project to Java 8 - get XML validation error after adding runtime property to appengine-web.xml

scikit Learn with Google app engine

I am currently working on a data science project using python 2.7 framework which uses few modules like numpy,flask,pandas and have successfully deployed the application to Google cloud using app engine. I am now planning to use scikit-learn ML framework and my concern if it is compatible with google app engine?. I have seen some past forums where they mentioned sci-kit learn is not supported on App Engine. Wanted to check if this is still the case. Appreciate your input's here
You're referring to the Pure Python limitation in the Python standard environment sandbox.
One possible solution is using the GAE Python flexible environment, which doesn't have such limitation. While fundamentally it uses Google Compute Engine (GCE) VMs underneath it still retains some of the GAE convenience features which you'd need to handle yourself if going straight with a GCE solution.
See the Choosing an App Engine Environment guide.
It looks like sci-kit learn is not supported on App Engine, and the using managed VMs is the preferred solution. See the resolution of this bug.
Also see this similar question for another alternative approach.
I suggest you check out Google Compute Engine or Google container Engine.
2.7 Standard only allows you to import whitelisted/proprietary modules (listed in the Docs), whereas the Flex Environment supports all Python modules.
The new 2nd Generation Python 3.7 Standard Environment supports using all modules as well as many other features that 2.7 Standard doesn't.

Using GAE SDK for both Python and Go

I have used the GAE SDK for developing Python apps for a year or so. I would like to try my hand with Go. There is a different SDK download for Go and the docs say it is slightly different than the Python SDK. My question is do I need to install this separately and use different SDKs for Python/Go? Or is the Go SDK "inclusive" of the Python SDK?

java.lang.UnsupportedClassVersionError in Google App Engine

I'm running windows 7 and juno. Jdk 1.7, gwt 2.4, app engine 1.7.
I did the stockwatcher tutorial here and everything worked great. I then deployed it to app engine. Everything still worked great!
However, I then did the RPC part of the tutorial here. When I ran locally, I got a java.lang.VerifyError that I fixed by following this thread (putting -XX:-UseSplitVerifier in default VM arguments). It then worked locally and I deployed to app engine.
In app engine, I get a java.lang.UpsupportedClassVersionError. I found two threads that seem to have the same problem, here and here. I'm using a fresh install of windows 7 and the only jdk I downloaded was 1.7. Looking through eclipse, I see jre7, jdk 1.7, and app engine 1.7.
I read somewhere that app engine doesn't work with 1.7. However the app engine sdk version on the downloads page is 1.7 (I think that might be super recent) but I don't really know if those things are related. I went ahead and downloaded java 6 and app engine sdk 1.6.6, added jre6 to the installed jres, set the compiler compliance level to 1.6, changed it in my project too for good measure, and changed the default app engine sdk to 1.6.6.
Now I'm getting the error, "Java compiler level does not match the version of the installed java project facet." I googled the problem and everyone says to right click the project and change the facet, but I can't seem to find that option. I also have no idea if I'm going about this the right way. I'd much rather use the most recent versions of everything if possible. I also don't understand why app engine worked the first time with no RPC, but broke with the RPC.
Any help would be greatly appreciated!!! THANK YOU!!!
GAE does not currently support java 1.7, only 1.5 and 1.6 are supported. See the java docs for more information.
The relevant paragraph is the following:
App Engine runs Java applications using the Java 6 virtual machine (JVM). The App Engine SDK supports Java 5 and later, and the Java 6 JVM can use classes compiled with any version of the Java compiler up to Java 6.
The version of the GAE sdk you downloaded (1.7) isn't related in any way with the java version.
GAE is a sandbox environment. Currently it supports only Java 6. But to solve your problem, if you can downgrade your compile version to Java 6, you should be able to take advantage of GAE.
But if you want a standalone server environment without any restrictions, check other cloud platforms like heroku or cloudbee
Possibilities are
you don't have right JDK or
GAE you using that does not support 1.7
Open below file under .settings (use Navigator window) and change java project facet to 1.6
org.eclipse.wst.common.project.facet.core.xml
After change you must close and restart the eclipse.
Currently ,... java 7 already supported
Warning: In a future release, support for Java 6 will be removed, so it is a good idea to start migrating to Java 7 now. If you've been using Java 6 and are interested in learning about possible issues migrating to Java 7, this white paper may be helpful.
from : https://developers.google.com/appengine/docs/java/overview

How to make a cloud and all platforms offline apps together?

I know is hard to develop web application and make a individual app versions in each device.
But i just want to know how that works with big companies.I want to know how they write there code
The best example is Evernote and Google Drive.
They make a cloud application and individual apps for each device.
So the questions are..
How do sync the data with the cloud apps ?
Do they use version control ?
Can i get software requirement specification anywhere ?
Platforms and Languages:
iPhone and Mac - Objective C
Android and Other Mobile Apps - Java
Windows 8 - C#
Web Apps - PHP or Python
How do you solve this solution languages differ?
I guess i it's not possible with version control..
How to minimize coding ?
I recommend you use a version control tool.
make a individual app versions in each device.
I assume you mean developing different versions with few differences. The branch feature in a version tool can help you manage these versions easily.
How do sync the data with the cloud apps ?
You can use the web deployment feature to upload the applications/modifications to your web server.
I list some version control tools here for your reference:
Git
SVN
SourceAnywhere (I work for the company)
Team Foundation Server

Resources