Snow Leopard 10.6 und Django

Über Google findet man schnell einige Artikel. Mal sehen ob diese funzen und nach meinem Geschmack sind! Unten sind die Fundstellen aufgeführt.

Snow Lepoard kommt bereits mit Python 2.6 und Subversion (csv) ist auch dabei. Damit sind die Grundlagen der Beschaffung der Entwicklungsumgebung geschaffen. Damit die Installation von django und MySQL wie auf dem Server erfolgt, lade ich alles nach "/usr/local/django_dev". Dies hat den Vorteil, das ich die Pfade bei allen Dingen gleich halten kann. Ein rsync zur Datensicherung ist so allg. für den Server und die anderen Rechner.

Zur Vorbereitung lade ich mir die aktuellen MacPorts für Snow Leopard. Einfach Klasse was da alles an Kram installiert werden kann. Damit macht das Mac OS X erst richtig Freu(n)de.

Step by ...

Django develop holen

svn co http://code.djangoproject.com/svn/django/trunk/ trunk
ln -s trunk/django .
ln -s /usr/local/django_dev/django /Library/Python/2.6/site-packages/

So kann später mal bei Bedarf die Django Version gegen eine andere getauscht werden. Das Ergebnis sollte so aussehen:

python
import django 
>>> django.get_version()
u'1.2 pre-alpha SVN-11587'
>>> 

Dies gilt natürlih nur für diesen trunk! Das das Sytem ja "frisch" ist sollte das Profil des Entwicklers ggf. noch ein wenig getunt werden. Meine Umgebungsvariabelen der bash waren aber nach Überprüfung ok.

echo $LANG
de_DE.UTF-8
#kurzer Test auf die Pfade
python -c "import sys; print sys.path"

Sollte das nicht der Fall sein kann man in der "./profile noch ein wenig nachbessern.

##
# DELUXE-USR-LOCAL-BIN-INSERT
# (do not remove this comment)
##
echo $PATH | grep -q -s "/usr/local/bin"
if [ $? -eq 1 ] ; then
    PATH=$PATH:/usr/local/bin
    export PATH
fi
export LC_ALL=de_DE.UTF-8
export LANG=de_DE.UTF-8

Die Datenbanken fühlen sich so einfach besser und die Umgebungen auf Server und Entwicklungsrechner sind so gleich. "abgehackt"

Nun kommen wir zu MySQL. Damit es einfach flutscht. Damit ich es einfach auf den anderen Rechnern nutzen kann wird es auch selber nach "/usr/local/mysql" geladen und dort compiliert. Die XCode sind dafür obligatorisch. Ein wenig configure und dann ein make. Der typische Dreiklang:"configure, make und & make install". Der Debian-Nerd sein Steckenpferd :)

Download MySQL

(Achtung die Versionen ändern sich .. http://opensource.become.com/mysql/Downloads/MySQL-5.1)

curl -O http://opensource.become.com/mysql/Downloads/MySQL-5.1/mysql-5.1.39.tar.gz

entpacken und nun die compile-Anweisung reinkopieren. Danke an 1.

./configure --prefix=/usr/local/mysql --with-extra-charsets=complex \
--enable-thread-safe-client --enable-local-infile --enable-shared \
--with-plugins=innobase

make 
sudo make install 

.... lange zeit warten und bloggen .... 

cd /usr/local/mysql
sudo ./bin/mysql_install_db --user=mysql
sudo chown -R mysql ./var

Wie unter 1. beschrieben MySQL lauffähig machen. Das Result sollte dann wie unten aussehen.... freude..

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.39 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
@

Die Heirat von MySQL und django

Damit beide auf schön zusammen werkeln fehlt die Datenbankanbindung. Diese wird durch MySQL-python-1.2.3c1 möglich. Möchte mich nicht wiederholen. Lief bei mir ohne Probs. Nun noch ein Test mit einer Lifeflow Installation von Clarissa Rieger

Beim Test von "python manage syncdb" bemerke ich das Fehlen von memcached. Nun erweist es sich als überaus hilfreich bereits über die MacPort zu verfügen. Die folgenden Zeilen helfen doch mächtig, gerade wenn man in Eile ist!

sudo /opt/local/bin/port install memcached py26-memcached
sudo launchctl load -w /Library/LaunchDaemons/org.macports.memcached.plist
USER       PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
macdet   87926   0,0  0,0  2435032    536 s000  S+    6:16pm   0:00.00 grep -i mem
nobody   87923   0,0  0,0  2465756    512   ??  Ss    6:16pm   0:00.00 /opt/local/bin/memcached -u nobody -m 64 -c 10240 -p 11211 -d
root     87919   0,0  0,0  2447776   1012   ??  Ss    6:16pm   0:00.00 /opt/local/bin/daemondo --label=memcached --start-cmd /opt/local/etc/LaunchDaemons/org.macports.memcached/memcached.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.memcached/memcached.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.memcached/memcached.wrapper restart ; --pid=none

Die obige Anweisung führte leider nicht zum Erfolg. Hätte ich einfacher haben können :( Sourcecode besorgen und setup build + install

Metadata-Version: 1.0
Name: python-memcached
Version: 1.31
Summary: A Python memcached client library.
Home-page: http://www.danga.com/memcached/
Author: Evan Martin
Author-email: martine@danga.com
License: Python
Description: A Python memcached client library.
Platform: UNKNOWN

Nun schnell die dumps erstellen, importieren und weiterentwickeln :)

Hinweise zu den Fundstellen:

  1. Compiling MySQL on Snow Leopard
  2. MySQL for Python
  3. MySQL for Pythonby adustman