2. Varför virtualenv?
• Använd senaste Django och relaterade
moduler utan risk att andra projekt slutar
fungera
• Mer kontroll över miljön dina Django-
projekt körs i
• Installera och testa saker utan att hela
systemet påverkas
3. Hur installerar jag?
$ port install py26-virtualenv
eller...
$ apt-get install python-virtualenv
eller...
$ easy_install virtualenv
4. Skapa ett projekt
$ virtualenv2.6 mitt-projekt
eller, ännu hellre...
$ virtualenv2.6 --no-site-packages mitt-projekt
(med MacPorts)
5. Aktivera virtuell miljö
$ cd mitt-projekt
$ source bin/activate
(mitt-projekt) $
• Håll koll på virtualenv-parenteserna!
8. Toppen! Fast...
• Du behöver fortfarande återskapa allt varje
gång du installerar ditt projekt
... på din bärbara
... på din server
... och på alla andra ställen där du utvecklar.
• Du kan inte lyfta över miljön till en annan
plattform
9. Batteries included?
• Även om batterier ingår så är det en hel del
till man oftast behöver:
django-tagging
south
python-oauth
11. Dependencies
• ...och så var det alla dependencies som är
utspridda på github, bitbucket, google code
och ftp-servrar
• (hur var det nu man byggde PIL igen?)
12. Hej Buildout!
• Börja med att ladda hem bootstrap.py som
sätter upp buildout:
(mitt-projekt) $ curl -O http://svn.zope.org/
*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
• Varför inte bara easy_install zc.buildout när
man nu använder virtualenv?
13. Bootstrap
• Kör bootstrap.py (men glöm inte att först
aktivera virtualenv)
(mitt-projekt) $ python bootstrap.py init
• Init-flaggan skapar en konfigurationsfil för
buildout, skippa den ifall du redan har en.
16. Buildout-recept
• Det finns recept för det mesta:
Checka ut från subversion, git, hg...
Ladda hem och installera tarballs
Utföra kommandon i terminalen
• Man kan köra parallella Django-recept, t.ex.
1.1 och trunk.
17. ?!?
• Kolla oväntade dependencies i eggs-foldern
ifall du kör parallella django-recept. Kanske
drogs Django 1.1 in av t.ex. django-flash och
körs istället för trunk.
18. Djangorecipe
• Skapar en wrapper runt manage.py vilken
laddar alla eggs och andra dependencies.
(mitt-projekt) $ django-1.1 shell
• Kan automatiskt generera wsgi-
konfigurationsfiler
wsgi = True
./bin/django-1.1.wsgi