Taille: 3537
Commentaire: Reclassement
|
← Version 20 à la date du 2012-08-14 22:57:13 ⇥
Taille: 1743
Commentaire: soyons clairs sur les bornes de cette dérive…
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
## page was renamed from Python/Buildout | |
Ligne 4: | Ligne 5: |
= Documentation non-complète = Basé sur: [[http://www.justanothercodemonkey.com/2009/08/deploying-django-with-buildout.html]] |
|
Ligne 10: | Ligne 7: |
Buildout est le système de déploiement d'applications Python qui est en test en ce moment pour les systèmes à Montréal. | Buildout est actuellement le système de déploiement d'applications Python pour les _systèmes d'information_ à Montréal. /!\ Ce n'est cependant pas la méthode recommandée pour les applications d'administration système ou de gestion d'infrastructure, qui doivent se limiter à utiliser les paquets disponibles avec la version Debian installée (ou ses backports). |
Ligne 14: | Ligne 13: |
== Création du buildout == | == Création d'un projet avec Buildout == |
Ligne 16: | Ligne 15: |
La procédure utilise paster et les templates django, il faut donc l'installer: {{{ easy_install fez.djangoskel |
Nous disposons d'un squelette Buildout Django à l'AUF qui recense nos bonnes pratiques. * Télécharger le fichier qui servira à boostraper le projet {{{ wget 'http://git.auf.org/?p=olivier.git;a=blob_plain;f=bootstraper/mk_django_project.py;hb=HEAD' -O mk_django_project.py |
Ligne 21: | Ligne 23: |
Création de la structure de base: | {i} Lors d'un développement local, il est utile de faire les installations dans un environnement virtuel avec '''virutalenv'''. Ceci reste néanmoins optionnel (car le script se charge de récupérer la dernière version), mais '''fortement''' conseillé. * Lancer le script |
Ligne 23: | Ligne 30: |
paster create -t django_buildout <nom du dossier> | python mk_django_project.py |
Ligne 26: | Ligne 33: |
Paster va poser quelques questions: {{{ Selected and implied templates: fez.djangoskel#django_buildout A plain Django buildout |
* Répondre aux questions |
Ligne 31: | Ligne 35: |
Variables: egg: djangodev package: djangodev project: djangodev Enter django_version (Django version to fetch, the default is 1.0.2) ['1.0.2']: Enter django_project_name (Name of the main Django project folder) ['project'] }}} |
{i} À la fin de la procédure, un petit récapitulatif des choses à faire est affiché. |
Ligne 39: | Ligne 37: |
Une fois terminé, on aura l'arborescence suivante: {{{ djangodev |-- bootstrap.py |-- buildout.cfg |-- devel.cfg `-- README.txt }}} Lors de la premiere utilisation, il faut lancer le boostrap: {{{ $ python ./bootstrap.py Creating directory '/home/bashu/Temp/djangodev/bin'. Creating directory '/home/bashu/Temp/djangodev/parts'. Creating directory '/home/bashu/Temp/djangodev/develop-eggs'. Generated script '/home/bashu/Temp/djangodev/bin/buildout'. }}} Il faut maintenant lui faire installer les dependances, et créer le projet: {{{ $ ./bin/buildout -c devel.cfg Installing django. ... }}} Il existe maintenant un nouvel executable bin/django, equivalent a ''python manage.py'': {{{ $ ./bin/django syncdb }}} Buildout aura aussi créé un dossier pour le projet Django. S'il s'agit d'un projet existant, suffit de copier le contenu du projet dans ce dossier. À cette étape, il faut ajouter le ''path'' du projet dans la configuration de buildout: ajouter la ligne suivante dans la section "django" de buildout.cfg: {{{ extra-paths = <nom du projet> }}} Il faudra ajouter les dépendances du projet dans buildout.cfg, en ajoutant une entrée ''eggs'' dans la sesion django: {{{ eggs = django_pagination >=1.0 django_sorting <=0.1 django_historique django_exportateur auf_roa_authentification_backend }}} Il faut spécifier une dépendance par ligne, avec la version minimale ou maximale requise (optionnel). === Un exemple de .gitignore pour un projet django avec buildout === {{{ # binaires *.pyc *.pyo # Fichier temporaires: .*.swp *~ \#*# # DB de dev *.db # restants de merge *.orig *.rej # Configuration du projet - par environnement conf.py django.wsgi # buildout .installed.cfg bin develop-eggs downloads eggs log parts tmp }}} |
|
Ligne 122: | Ligne 40: |
=== Environnement de dev === | === Environnement de développement === |
Ligne 125: | Ligne 43: |
# Créer la structure initiale du buildout, génerer les scripts | |
Ligne 127: | Ligne 44: |
# Faire le buildout de dev | |
Ligne 129: | Ligne 45: |
# Lancer le serveur de dev | |
Ligne 134: | Ligne 49: |
=== Mise en prod === | === Environnement de production === |
Ligne 137: | Ligne 52: |
# Créer la structure initiale du buildout, génerer les scripts | |
Ligne 139: | Ligne 53: |
# Faire le buildout de prod $ bin/buildout -c buildout.cfg # des fois, on peut avoir un production.cfg |
$ bin/buildout |
Ligne 143: | Ligne 56: |
Buildout a généré un django.wsgi dans bin, il suffira de configurer Apache pour l'utiliser | {i} Buildout a généré un django.wsgi dans bin, il suffira de configurer Apache pour l'utiliser |
Sommaire
Buildout
Buildout est actuellement le système de déploiement d'applications Python pour les _systèmes d'information_ à Montréal.
Ce n'est cependant pas la méthode recommandée pour les applications d'administration système ou de gestion d'infrastructure, qui doivent se limiter à utiliser les paquets disponibles avec la version Debian installée (ou ses backports).
Buildout permet de gérer les dépendances, crée un environnement virtuel similaire a virtualenv, etc.
Création d'un projet avec Buildout
Nous disposons d'un squelette Buildout Django à l'AUF qui recense nos bonnes pratiques.
- Télécharger le fichier qui servira à boostraper le projet
wget 'http://git.auf.org/?p=olivier.git;a=blob_plain;f=bootstraper/mk_django_project.py;hb=HEAD' -O mk_django_project.py
Lors d'un développement local, il est utile de faire les installations dans un environnement virtuel avec virutalenv. Ceci reste néanmoins optionnel (car le script se charge de récupérer la dernière version), mais fortement conseillé.
- Lancer le script
python mk_django_project.py
- Répondre aux questions
À la fin de la procédure, un petit récapitulatif des choses à faire est affiché.
Utilisation
Environnement de développement
$ python bootstrap.py $ bin/buildout -c devel.cfg $ bin/django runserver
Environnement de production
$ python bootstrap.py $ bin/buildout
Buildout a généré un django.wsgi dans bin, il suffira de configurer Apache pour l'utiliser