Modifications entre les versions 5 et 20 (s'étendant sur 15 versions)
Version 5 à la date du 2010-02-17 17:05:19
Taille: 3495
Éditeur: CyrilRobert
Commentaire:
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
## page was renamed from Django/Buildout
Ligne 2: Ligne 4:

= Documentation non-complète =

Basé sur: [[http://www.justanothercodemonkey.com/2009/08/deploying-django-with-buildout.html]]
Ligne 9: 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 13: Ligne 13:
== Création du buildout == == Création d'un projet avec Buildout ==
Ligne 15: 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 20: 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 22: Ligne 30:
paster create -t django_buildout <nom du dossier> python mk_django_project.py
Ligne 25: Ligne 33:
Paster va poser quelques questions:
{{{
Selected and implied templates:
fez.djangoskel#django_buildout A plain Django buildout
 * Répondre aux questions
Ligne 30: 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 38: 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 121: Ligne 40:
=== Environnement de dev === === Environnement de développement ===
Ligne 124: Ligne 43:
# Créer la structure initiale du buildout, génerer les scripts
Ligne 126: Ligne 44:
# Faire le buildout de dev
Ligne 128: Ligne 45:
# Lancer le serveur de dev
Ligne 133: Ligne 49:
=== Mise en prod === === Environnement de production ===
Ligne 136: Ligne 52:
# Créer la structure initiale du buildout, génerer les scripts
Ligne 138: Ligne 53:
# Faire le buildout de prod
$ bin/buildout -c buildout.cfg # des fois, on peut avoir un production.cfg
$ bin/buildout
Ligne 142: 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

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

{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

python mk_django_project.py
  • Répondre aux questions

{i} À 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

{i} Buildout a généré un django.wsgi dans bin, il suffira de configurer Apache pour l'utiliser

Python/buildout (dernière édition le 2012-08-14 22:57:13 par JeanChristopheAndré)