Les hooks de virtualenv (exemple: postactivate pour les settings de Django) 2


Virtualenv possède ce qu’on appelle des hooks, c’est à dire des scripts qui sont appelés automatiquement quand un événement se produit.

Tous les scripts se trouvent dans le dossier ‘bin’ de l’environnement virtuel.

On y trouve:

  • activate: appelé quand vous activez l’env
  • postactivate: appelé après l’activation de l’env
  • postdeactivate: appelé après la désactivation de l’env
  • preactivate: appelé avant d’activer l’env
  • predeactivate: appelé avant la désactivation de l’env

Ce sont des scripts bash vides, il suffit de les remplir avec ce qu’on veut qu’il arrive : lancer un service, logger dans un dossier, setter une variable…

Par exemple, j’ai un fichier de settings django qui n’est pas détecté automatiquement par ./manage.py, du coup je met ce code dans “~/.virtualenv/monenv/postactivate” :

echo 'Set DJANGO_SETTINGS_MODULE="settings.unsettingsparticulier"'
export DJANGO_SETTINGS_MODULE="settings.unsettingsparticulier"

Ça me set ma variable d’environnement et du coup ./manage.py trouve mon fichier de settings.


You can use Github Flabored Markdown to format your comments.

Leave a comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

2 thoughts on “Les hooks de virtualenv (exemple: postactivate pour les settings de Django)

  • kontre

    Corrigé, merci !

    Il devrait y avoir une boîte de dialogue de confirmation pour les copier-coller : “Vous allez forcément oublier de modifier un truc. Voulez-vous continuer quand même ? NON / ANNULER”