First steps with Pinax
Thursday, 4th June, 2009
Pinax is a web development platform built on top of Django (which is a web development framework). The point of Pinax seems to be that it gathers together and integrates a collection of django applications into one package. You install Pinax and all of a sudden you have a fully functioning ‘default’ social networking website.
Preliminaries for Mac OS X
python-mysql
I’m going to use MySQL with Django. So I need MySQL itself, and the python-mysql interface, python-mysql. If you install mysql and python-mysql from fink, this section may not be necessary.
I installed the Mac OS X MySQL from mysql.com. This meant that the python-mysql from fink didn’t work (it didn’t find mysql & started installing its own). Installing python-mysql from sourceforge didn’t work either: I got a compile error similar to this:
/usr/include/sys/types.h:92: error: duplicate ‘unsigned’ /usr/include/sys/types.h:92: error: two or more data types in declaration specifiers
From MangoOrange I found the following advice:
Step 4:
In the same folder, edit _mysql.c using your favourite text-editor4a. Remove the following lines (37-39):
#ifndef uint
#define uint unsigned int
#endif4b. Change the following:
uint port = MYSQL_PORT;
uint client_flag = 0;to
unsigned int port = MYSQL_PORT;
unsigned int client_flag = 0;
After a precautionary sudo python setup.py clean, python-mysql will now install with the specified sudo python setup.py install.
PIL
For photo support (e.g. uploading photos to your Pinax homepage), Pinax uses the Python Imaging Library. fink installs PIL to /sw/lib/python2.5/site-packages/PIL/ where MacOSX’s own python can’t find it. I got PIL source from http://www.pythonware.com/products/pil/ and installed that using sudo python setup.py install.
Pinax: install and set up
There’s very little to write here. I followed the instructions and everything worked, …
… except the Locations page in the resulting website. Even here though it showed a very helpful Django error page:
Exception Type: ImproperlyConfigured Exception Value: django-locations requires a valid YAHOO_MAPS_API_KEY setting. Please register for a key at https://developer.yahoo.com/wsregapp/ and then insert your key into the settings file.
Doesn’t look like I need to worry about that for now. If I want Locations I’ll go get a key, otherwise I’ll uninstall Locations.