David Larlet : artisan, contributeur et citoyen.


Archives du site biologeek.com. Publications récentes.

Comment installer Django

vignette

Ce document décrit les différentes étapes nécessaires à l'installation de Django.

Installer Python

Étant un framework web en Python, Django requiert Python.

Il fonctionne avec n'importe quelle version de Python supérieure ou égale à 2.3.

Récupérez Python sur www.python.org. Si vous êtes sous GNU/Linux ou MacOS X, il est déjà probablement installé sur votre machine.

Installer Apache et mod_python

Si vous voulez juste expérimenter Django, sautez cette étape. Django fournit sont propre serveur Web destiné à la phase de développement.

Si vous voulez utiliser Django sur un site en production, utilisez Apache avec mod_python. mod_python est similaire à mod_perl -- il embarque Python à l'intérieur d'Apache et charge le code Python en mémoire quand le serveur démarre. Le code reste en mémoire pendant toute la durée de vie d'un processus Apache, ce qui mène à des performances significatives par rapport à d'autres architectures de serveurs. Vérifiez que vous avez Apache d'installé, avec le module mod_python d'activé. Django requiert Apache 2.x et mod_python 3.x.

Lisez comment utiliser Django avec mod_python pour les informations concernant la configuration de mod_python une fois que vous l'avez installé.

Si vous ne pouvez pas utiliser mod_python pour une quelconque raison, n'ayez pas peur : Django suit la spécification WSGI, qui lui permet d'être exécuté sur de nombreuses plate-formes de serveurs. Lisez la page wiki sur les architectures de serveurs pour les instructions spécifiques à l'installation pour chaque plate-forme.

Faire marcher votre base de données

Si vous prévoyez d'utiliser l'API d'accès aux bases de données fournie par Django, vous aurez besoin qu'un serveur de base de données soit lancé. Django marche avec PostgreSQL (recommandé), MySQL et SQLite.

De plus, vous aurez besoin d'avoir installé une surcouche Python pour la base de données utilisée.

  • Si vous utilisez PostgreSQL, vous aurez besoin du paquet psycopg (version 1.1 -- pas la version 1.0 ni la version 2, qui est toujours en bêta). Si vous êtes sous Windows, récupérez la version précompilée non-officielle pour Windows.
  • Si vous utilisez MySQL, vous aurez besoin de MySQLdb.
  • Si vous utilisez SQLite, vous aurez besoin de pysqlite. Utilisez la version 2.0.3 ou plus.

Installer le code de Django

Les instructions d'installation sont quelque peu différentes si vous utilisez la dernière version officielle ou la dernière version en développement.

Quelle que soit la version choisie, la démarche est facile.

Installation de la version officielle

  1. Téléchargez Django-0.95.tar.gz depuis notre page de téléchargement.
  2. tar xzvf Django-0.95.tar.gz
  3. cd Django-0.95
  4. sudo python setup.py install

Notez que la dernière commande téléchargera et installera automatiquement setuptools si vous ne l'avez pas déjà d'installé. Ceci requiert une connexion internet en état de marche.

Ceci installera Django dans le répertoire site-packages de votre installation Python.

Installation de la version en développement

  1. Vérifiez que vous ayez Subversion d'installé.

  2. svn co http://code.djangoproject.com/svn/django/trunk/ django_src

  3. Faites un lien symbolique de django_src/django nommé django à l'intérieur de votre répertoire Python site-packages:

    ln -s `pwd`/django_src/django /usr/lib/python2.3/site-packages/django

    (Dans la ligne ci-dessus, changez python2.3 pour qu'il corresponde à votre version de python en cours.)

Vous n'avez pas à exécuter python setup.py install.

Lorsque vous voudrez mettre à jour votre code, exécutez simplement la commande svn update depuis le répertoire django_src.

Vous pouvez maintenant retourner à la page d'accueil des traductions de la documentation de Django.

Cette traduction correspond à la révision 3589 (post 0.95).

Articles peut-être en rapport


Commentaires

kNo' le 19/06/2006 :

Juste une remarque concernant l'utilisation d'Apache et de mod_python. Bien que le module fonctionne apparemment correctement, j'ai eu les pires ennuis en essayant de l'utiliser pour Django. Refresh de la page - bug. refresh de la page - affichage correct. refresh de la page - erreur 500. refresh de la page - traceback, et ainsi de suite, dans un ordre totalement chaotique.

Impossible de déboguer correctement l'appli sous Apache. En utilisant le serveur fourni par Django, ça a l'air de fonctionner un peu mieux ; le soucis, c'est que ce serveur n'est absolument pas acceptable pour un environnement de production.

J'ai depuis légèrement laissé Django de côté, et de temps en temps, je fais une recherche pour savoir si ces dysfonctionnement se retrouvent ailleurs. Las ! Y'a pas grand-monde qui utilise Django, aussi je retombe souvent sur mon propre post sur la question dans Google, sans solution.

Quelqu'un m'éclairerait ?

David, biologeek le 19/06/2006 :

Je n'ai pas encore essayé avec mod_python, le serveur de développement marche très bien de mon côté par contre.

Pour la production, il reste FastCGI, les explications suivantes sont assez détaillées (notamment pour les DreamHostiens ;) :
www2.jeffcroft.com/2006/m...
wiki.dreamhost.com/index....
simon.bofh.ms/cgi-bin/tra...

C'est quand même étrange car Django a été à la base développé pour mod_python... et c'est ce qui est recommandé dans la FAQ.

[edit] : J'ai l'impression que ton problème était lié au cache non ?

kNo' le 19/06/2006 :

David: le cache, ça m'étonnerait, parce qu'une fois vidé, il devrait systématiquement renvoyer la page "normale" ou la page "erreur", et pas 'tantôt l'une, tantôt l'autre', en fonction de l'intensité des rayons cosmiques émis par Krypton.

Moi aussi ça me surprend ce bug lié au duo mod_python / apache et pour tout dire, c'est assez irritant de prendre un bug "aléatoire". J'suis plus habitué depuis que j'ai basculé du côté Libre de la Force.
Ceci dit, je voulais simplement utiliser Apache à des fins d'auto-formation sur mon serveur perso / de test / en local. Si je devais héberger un site en Django, je chercherai un hébergeur compétent et professionnel.

FastCGI, ça reste une alternative intéressante, au cas où le virus Django me reprenne... ;)

David, biologeek le 20/06/2006 :

> en fonction de l'intensité des rayons cosmiques émis par Krypton.

Huhu, non mais peut-être en fonction du cache d'Apache et/ou de Django et/ou du navigateur (oui j'ai découvert que Firefox pouvait poser des problèmes des fois sur mon localhost par exemple...) ? En fait il faudrait que je teste par moi même...

> Si je devais héberger un site en Django, je chercherai un hébergeur compétent et professionnel.

Pareil, ou alors sur une dédibox en collocation, à voir.

> FastCGI, ça reste une alternative intéressante, au cas où le virus Django me reprenne... ;)

Friend.kNo.immune_system += Virus.Django ;)

Scurz le 26/11/2006 :

L'installation de Django s'est très bien déroulée, bravo !

[JO-JOJO] le 23/05/2007 :

Bonjour,

Voilà alors j'ai un petit souci de base données :
J'ai installé Django en mode production avec python2.4, le mod-python, apache2 et pysqlite2 tous ça sur Ubuntu serveur et quand je lance mon site internet voilà l'erreur qui m'affiche :

Exception Type: OperationalError
Exception Value: unsupported file format
Exception Location: /usr/lib/python2.4/site-packages/django/db/backends/sqlite3/base.py in execute, line 93

Personnellement je ne comprend ce qui se passe ...
Pourriez vous m'aider SVP !!!

David, biologeek le 23/05/2007 :

Tu es sûr d'avoir installé sqlite ?

[JO-JOJO] le 23/05/2007 :

Je pense que OUI car au départ quand il n'était pas encore installé, j'avais une erreur genre :
no name module pyslite2

Et je ne pouvais pas du tout acceder au site, que là je vais sur la premiere page de mon site qui est un formulaire de log (qui n'utilise pas la base de données) et dès que je me log et que je vais faire la vérification dans la base pour acceder à la pagecd'accueil boummmm erreur ...

David, biologeek le 23/05/2007 :

pysqlite permet de se connecter à une base SQLite mais encore faut-il que SQLite soit installé :-)

[JO-JOJO] le 23/05/2007 :

J'ai installé SQlite3 et toujours la même erreur ...
Tampis je continu à chercher, je suis dèçu car mode developpement ca marche nikel et dès qu'on le passe sur un serveur ca devient tout de suite un peu plus la misére ... si y'a quelqu'un qui la fait sur Ubuntu j'aimerai bien avoir la methode et les différents package installé.

Merci,

David, biologeek le 23/05/2007 :

C'est le "unsupported file format" qui m'intrigue... peut-être un nom de fichier interdit ? (sinon tu peux utiliser une vraie base de données lorsque tu passes en prod : postgresql ou autre).

Desfrenes le 13/05/2008 :

J'ai rencontré les mêmes problèmes en environnement apache+mod_python (tantôt une page, tantôt une erreur, tantôt une 404... ou encore interface d'admin ne prenant pas en compte les modifs du model).
Apparemment il y une mise en cache du code (ce qui n'explique pas complètement le coté aléatoire), un peu l'équivalent d'un APC pour PHP. En général pour moi un restart d'Apache résoud le problème. C'est pas acceptable de redémarrer le serveur toutes les 30 secondes en cours de développement mais après tout le serveur fournis est là pour ça.

cifo le 09/08/2009 :

Merci beaucoup! j'ajoute que pour la version python 2.6, voilà le lien de téléchagement de MYSQLDB...

http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe