Saturday, April 28, 2012

Installing Django-nonrel Easily Automated

If you've ever tried setting up django-nonrel for Google App Engine, then you realize that it can be a pain in the ass. Multiple archives to download, long and annoying directories to rename, some libraries are an extra directory deep while others aren't (no standard convention for directory name or location), trying to figure what goes where, and the extreme tediousness of setting up multiple symbolic links...

What to do? Automate the entire process, of course. This program may be considered the semi-official installer for Django-nonrel with GAE.

Download Link:
https://github.com/Sepero/django-nonrel-installer/archive/master.zip

You will need to run it on the command line with the argument of your desired django-nonrel branch. The available arguments are:
  • --master    to install django-nonrel 1.3 master
  • --dev           to install django-nonrel 1.3 development
  • --dev14      to install django-nonrel 1.4 development
  • --clean      to erase the current install

The installer should be run in the directory where it exists. Here is an example of how to install 1.4 development in a terminal 
$ python dj_nonrel_install.py --dev14

Installing 1.3 development in a terminal
$ python dj_nonrel_install.py --dev

The folder "django-nonrel" will be created, and all files will be downloaded/installed within the folder for use with Google App Engine. After it's finished, just move/rename the directory to where ever you want the permanent location to be.

Now, instead of farting around with details, you can get on to making awesome django apps! Any improvement suggestions or submissions are very welcome. This is tested on Linux, and will likely work on similar systems. It most definitely will not (yet?) run on MSWindows. Should now run on all Operating Systems!


Download Link:
https://github.com/Sepero/django-nonrel-installer/archive/master.zip
https://github.com/Sepero/django-nonrel-installer


Reference Links:
Django Documentation - http://docs.djangoproject.com/en
Django-Nonrel Documentation - http://docs.django-nonrel.org
Django-Nonrel Mailing List - http://groups.google.com/group/django-non-relational




Update 2012 Apr 28:
Currently working to make the installer dual compatible with installing MongoDB also.

Update 2012 May 01:
Django-Testapp doesn't work with MongoDB for some reason. A bug report has been filed with it's author. I'm sorry, but at the time of this writing, MongoDB support cannot yet be implemented.

Update 2012 May 15:
The installer has now been modified to work with all operating systems. For systems that don't support symbolic links, the libraries will be moved directly inside of the Django-Testapp folder.

Update 2012 May 28:
Support has been added for "master" and "develop" branches. Master is installed by default. To install development branches of django-nonrel, use the command line argument --dev.

Update 2012 Jun 4:
Added Reference Links.

Update 2012 Sep 20:
Fixed problem with downloading development branches.

Update 2012 Dec 25:
Branch 1.4 is now available to install. Changed to install all contents into a folder.

Update 2013 Mar 14:
Fix for djangoappengine library. Switched source hosting to github.

4 comments:

  1. Your installer worked great after I altered the "-"'s to "_"'s when executing in Terminal.

    Now I exploring two questions.

    1) What does the --dev option give me (I did not try it)?

    2) I am lost with djangoappengine. I found the "main.py" file in the djangoappengine subdirectory with all the python code, but the code does not look like any I have used before in GAE. I have not used django except as a small part of python. So I am very confused about this programming environment. Where can I find a tutorial which will make the transition from old to new for me?

    This looks like a great automation of the download. Thanks already for that.

    Brian in Atlanta

    ReplyDelete
    Replies
    1. Hey Brian, I'm glad to hear the installer worked out well. I just corrected the typo about the "_"s. ;)

      1) It installs the "development" libraries of django-nonrel. By default the "master" (stable) libraries are installed. (edited the text a bit to try and clearify that)

      2) Django http://docs.djangoproject.com/en/1.3/
      Django-Nonrel http://docs.django-nonrel.org/

      Hopefully that will help you get up to speed. Cheers

      Delete
  2. Thank You Thank You Thank You Thank You.
    I spent all day trying to get djangoappengine/django-nonrel working, for some new Django projects I'm planning, I was about to give up, until I found your script.
    Still some things I've got to nut out, but at least I have a working app as proof of concept, sessions, auth, even admin working.
    1AM after 12 hours of seemingly no hope, going to bed happy.
    Trevor in Australia.
    http://cbsw.com.au/

    ReplyDelete
  3. looks cool tut.... i'll try these steps...

    ReplyDelete