Modifications entre les versions 7 et 19 (s'étendant sur 12 versions)
Version 7 à la date du 2010-03-02 17:03:11
Taille: 3538
Éditeur: CyrilRobert
Commentaire: correction faute
Version 19 à la date du 2012-08-14 19:36:39
Taille: 1464
Commentaire:
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 le système de déploiement d'applications Python pour les systèmes à Montréal.
Ligne 14: Ligne 10:
== Création du buildout == == Création d'un projet avec Buildout ==
Ligne 16: Ligne 12:
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 20:
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 27:
paster create -t django_buildout <nom du dossier> python mk_django_project.py
Ligne 26: Ligne 30:
Paster va poser quelques questions:
{{{
Selected and implied templates:
fez.djangoskel#django_buildout A plain Django buildout
 * Répondre aux questions
Ligne 31: Ligne 32:
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 34:
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 section 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 37:
=== Environnement de dev === === Environnement de développement ===
Ligne 125: Ligne 40:
# Créer la structure initiale du buildout, génerer les scripts
Ligne 127: Ligne 41:
# Faire le buildout de dev
Ligne 129: Ligne 42:
# Lancer le serveur de dev
Ligne 134: Ligne 46:
=== Mise en prod === === Environnement de production ===
Ligne 137: Ligne 49:
# Créer la structure initiale du buildout, génerer les scripts
Ligne 139: Ligne 50:
# Faire le buildout de prod
$ bin/buildout -c buildout.cfg # des fois, on peut avoir un production.cfg
$ bin/buildout
Ligne 143: Ligne 53:
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 le système de déploiement d'applications Python pour les systèmes à Montréal. 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é)