Category: appengine

  • Managing Google App Engine SDK versions on OSX with virtualenv

    When I first started developing Django apps on Google App Engine (GAE), I downloaded the google app engine launcher. Installing this will install the latest version of the SDK, and will (if you let it) update your path to point to it. This is fine if you are always using the latest version and don’t need to use an older version for some reason. If that is the case you will need to uninstall GAE launcher, find an old installer for the version you want and reinstall.

    A more manageable way is to not use the GAE launcher, but to download the SDK manually, then set up a virtualenv to use a particular SDK. I also use virtualenvwrapper to help me switch easily between environments.

    This is the pertinent bit – in the folder where your virtual envs are stored, add the path to the app engine sdk in bin/postactivate. Postactivate gets run when you activate the virualenv through virtualenvwrapper. E.g for something using version 1.8.8 you might have something like:-


    #!/bin/bash
    # This hook is run after this virtualenv is activated.
    export PATH=/Users/rickhurst/gae-sdk/1.8.8/google_appengine:$PATH

  • Running Google App Engine SDK on OSX lion

    OSX Lion comes with python 2.7 as default. Although App Engine will run on 2.7, it is safer to develop on the version of python that your live app engine instances are running on, which in my case is python 2.5 currently.

    From a fresh install of Lion, I did the following:-

    Installed xcode via app store

    Installed Google App Engine SDK for Python, by installing google app engine launcher (This contains the SDK and a launcher app).

    Installed mac ports

    In a terminal:-


    sudo port -v selfupdate
    sudo port install python25
    sudo port install py25-pil


    This means I can start my django server on python 2.5 using:-


    python2.5 manage.py runserver


    However if you want to run dev_appserver.py it will still try to use python 2.7 (which, unless you’ve installed it into your default python, will be without PIL)

    you can use macports to set the default version of python:-


    sudo port select python python25


    Finally, you might want to set Python Path to /opt/local/bin/python2.5 in your Google App Engine Launcher preferences

    refs:-

    http://stackoverflow.com/questions/4868185/how-to-install-pil-on-mac-osx-10-5-8-for-google-app-engine

    http://stackoverflow.com/questions/6152765/macports-didnt-place-python-select-in-opt-local-bin

    Update: after upgrading google app engine SDK to version 1.6, I was getting an import error “No module named _ctypes”. I have now upgraded to python2.6 and this fixed the issue.