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

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.

Articles similaires:

  1. Un alias bash pour Django + virtualenv dont je ne peux plus me passer
  2. En Django, le fichier settings.py, c’est juste du Python
  3. Mettre automatiquement DEBUG sur False en production pour Django
  4. Les environnements virtuels Python : virtualenv et virtualenvwrapper
  5. Un peu de Ruby dans du Python

flattr this!

2 comments

  1. Typo:

    predeactivate: appelé aprèsavant la désactivation de l’env

  2. 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”

Flux RSS des commentaires

Leave a Reply

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> <pre lang="" line="" escaped="" highlight="">

Jouer à mario en attendant que les autres répondent