Deploying Flask application on Google App Engine - python

This is my first web app I've ever developed, so even though I thoroughly searched everything I could for the Google App Engine, I'm afraid that my terminology and Google fu simply isn't good enough for what I need.
When I open up my terminal and type "python main.py", I can see that it works correctly on localhost.
Now I am trying to host this application on the Google App Engine. I have spent hours watching Youtube tutorials and following setup guides, trying to emulate their file structure and file contents. Whenever I deploy my app, I get the "500- Server Error: The server encountered an error and could not complete your request."
Here is my code: https://github.com/csherrod5/csherrod5.github.io
Here is an example of the types of guides I've been following: https://medium.freecodecamp.org/how-to-build-a-web-app-using-pythons-flask-and-google-app-engine-52b1bb82b221
I'm hoping someone is kind enough to help me diagnose my problem.
Thank you to everyone who stops by

There's no lib folder in your application directory, so App Engine won't have any of the third party libraries you're trying to import.
You've correctly added the appengine_config.py file needed to vendorise third-party libraries, but you need to add the libraries you want to use to a 'lib' folder in your application directory.
Some of the libraries you want to use are built into the runtime, you just have to add them to your app.yaml to use them.

Related

Google App Engine Django Standard Environment: Error: Server Error

I am trying to deploy the most simple Django 1.10.5 project into Google App Engine and am completely stumped.
Upon running gcloud app deploy I am getting the following error when navigating to /...
This is the file structure of my app...
This is my .yaml file...
This is my appengine_config.py file...
I am also getting the following errors in Google Dev Tools network tab...
I am pretty certain the problem lies within my app.yaml file and am very unclear as to what url and handler are doing in this code. Can anyone see what I am doing wrong?
You seem to be quite far off from getting your django based app running on GAE. For example you're missing the lib dir where your version of django should be installed. You may want to go through Running Django on App Engine standard environment
Take a look of GAE log page and search text "raise". If you see something like "sqlite3", the problem might be caused by the default content of DATABASES section in settings.py file. Commenting out this DATABASES section solved my problem("Error: Server Error" only when deployed to GAE; working fine locally).

Deploy webapp on GAE then do changes online from GAE console

I deployed a webapp2 python application on GAE. Is there any way with which i can explore the source code or make changes in the project files from GAE console. Is it possible that if i only want to update a single .py file on already deployed app rather than again deploying the whole project?
I think you're looking for this :
https://console.cloud.google.com/code/develop
I pushed my code on Google Cloud Platform with git, and I'm able to change text files directly online.
The doc is here :
https://cloud.google.com/source-repositories/

Can't run coursebuilder in google app engine

It is really weird that after clicking run button, it does nothing and also no log and show a clock sign on the first column.
It works normally before. However, after I messed up my python environment, the google coursebuilder can't run web application. That's my guessing. When I run which python.it only shows:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
These let me feel like I have no way to solve it!Are there anyone who came across this problem before? Any ideas or suggestions?
Updated: I follow suggestions to use command line to run web application on GAE. It reminds me here:
Update: The error message shows that GAE can't get the allocated port and domain. The reason why it happens is that when I use command line to run the web application, I also open GAE GUI to run a web app with the same port number.
So the way to solve it is to close the GAE GUI and free the port. Or we also could designate another kind of port number with command line.(--port=XXXX and --admin_port=YYYY). Or take a look at the doc:
Again thanks for the help of Mihail R!
The OP had multiple issues with GAE setup which were resolved by simply reinstalling the GAE Launcher and making sure the app was first copied into Applications from the .dmg file, then ran from the Applications instead of from inside the .dmg file, and appropriate permissions were suppose to be given so that GAE Launcher created the symlinks it needed to work properly.
More instructions on proper GAE SDK installation can be found here: https://cloud.google.com/appengine/downloads after clicking on the needed SDK and then the OS the SDK will be installed on.

Server Error : Should we have to install webapp2 separately to run Google App Engine in Ubuntu?

I am following getting started guide of google app engine python2.7. I have downloaded zip file of app engine for my ubuntu. I have created helloworld files and ran
'google_appengine/dev_appserver.py helloworld/'
command. localhost:8000, i.e. admin page opens fine, but localhost:8080 has server error.
I have tried to import in my local python environment, which gave an error. So do we have to install it? which I tried according to webapp2's official website but didn't work out.
This question gets asked so many times, have you checked stackoverflow for similar answers?
Have you read the documentation on what third party libraries are included with the appengine runtime.
webapp2 is included in the runtime but you must configure support/inclusion in app.yaml
https://developers.google.com/appengine/docs/python/tools/libraries27
And before you get any further read up on how to include external third party libraries. You will save yourself lots of time and questions just reading.

How and where to deploy my Python and BottlePy application

Ok, so I made this application in Bottle that uses the NLTK package. It works fine on my computer which has all neccesary libraries installed, however, I can't get it to work on Google's App Engine. It gives these errors:
AttributeError: 'module' object has no attribute 'getuid'
I searched around and think this is a limitation of GAE, so I tried to use Alwaysdata and host my app there. However over there I have the problem that the YAML module is not installed. I tried to install it but access was denied.
creating /usr/local/lib/python2.6/site-packages/yaml
error: could not create '/usr/local/lib/python2.6/site-packages/yaml': Permission denied
So now I am stuck. This is the problem I walk into a lot. It all works fine on my computer, but then I can't get it to work online. Is this because of GAE limitations, alwaysdata limitations? So I guess I am asking where and how could I deploy best?
Is it more easy when I rent my own server and have full access there? Does that work as if it were my own computer and I can install everything?
Let me know if I need to provide more information, I'm pretty clueless.
I realise that you've already found an answer, but for other people looking for Python bottle hosting. PythonAnywhere has a quickstart option for deploying and hosting bottle apps now.
This is a three or four click wizard process that will have a barebones bottle application running in a 10 seconds. Letting you then build from there.
I've had great success running all different types of Python frameworks on WebFaction - http://www.webfaction.com/
Their support is awesome, instant replies to any problems I face. You get SSH access and can install your own modules, virtual-envs etc. You can run sites as a Custom Application listening on a port number, so you can basically run anything.
Here's a thread on how to setup a Bottle app with them: http://community.webfaction.com/questions/3998/how-to-setup-a-python-bottle-application
All that for $8.50/month if you pay a year upfront. http://www.webfaction.com/services/hosting
I can't recommend them enough.
Edit: Thought it wise to mention, I've written apps that use the NLTK and they've run on WebFaction with no troubles.

Categories