How to Install GAE on Ubuntu
If you want to use Google App Engine
on Ubuntu there are a couple of things to note. Firstly GAE has
recently moved to version 1.6.5 and secondly Ubuntu has recently
released Ubuntu 12.04 (Precise Pangolin). Precise Pangolin is a Long Term Support (LTS) version of Ubuntu to come with Python 2.7 installed, and App Engine has been providing it as an option since February 2012. So if you are starting a new App Engine project, it's probably a good time to move to Python 2.7.
I'll explain briefly how you start a new project and there's a nice clean copy of the code at the bottom that you can cut and paste.
Let's get the show on the road. Choose a name for the project and create and switch to a virtual environment:
Now we need to know what the latest version of App Engine is, but as of writing it's 1.6.5:
And finally the app itself:
Published at DZone with permission of Col Wilson, author and DZone MVB. (source)I'll explain briefly how you start a new project and there's a nice clean copy of the code at the bottom that you can cut and paste.
Let's get the show on the road. Choose a name for the project and create and switch to a virtual environment:
PROJ=py27_gae_project
mkvirtualenv ${PROJ}
cdvirtualenvNote that note that "--no-site-packages" and "--distribute" are now the
defaults for mkvirtualenv. You don't even need to use
"--python=python2.7" on Ubuntu 12.04.Now we need to know what the latest version of App Engine is, but as of writing it's 1.6.5:
GAE=1.6.5 wget -O /tmp/gae.zip http://googleappengine.googlecode.com/files/google_appengine_${GAE}.zip unzip /tmp/gae.zipNow let's create an App Engine app. The app will need a name that has been created in the App Engine Console:
GAE_APP_NAME=dummy mkdir -p gae_app/staticNow create the app.yaml file:
echo """application: ${GAE_APP_NAME}
version: development
runtime: python27
api_version: 1
threadsafe: true
default_expiration: 7d
handlers:
- url: /static
static_dir: static
- url: .*
script: wsgi_app.app
""" > gae_app/app.yaml
And finally the app itself:
echo """import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Please replace me with a decent WSGI App Framework such as Flask')
app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)
""" > gae_app/wsgi_app.py
And finally to run the development server:
python ./google_appengine/dev_appserver.py gae_app/I hope that this has all been of some help to you. Did I miss anything? Please comment below.
PROJ=py27_gae_project
mkvirtualenv --python=python2.7 ${PROJ}
cdvirtualenv
GAE=1.6.5
wget -O /tmp/gae.zip http://googleappengine.googlecode.com/files/google_appengine_${GAE}.zip
unzip /tmp/gae.zip
GAE_APP_NAME=dummy
mkdir -p gae_app/static
echo """application: ${GAE_APP_NAME}
version: development
runtime: python27
api_version: 1
threadsafe: true
default_expiration: 7d
handlers:
- url: /static
static_dir: static
- url: .*
script: wsgi_app.app
""" > gae_app/app.yaml
echo """import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Please replace me with a decent WSGI App Framework such as Flask')
app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)
""" > gae_app/wsgi_app.py
python ./google_appengine/dev_appserver.py gae_app/
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)
Tags:





