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.

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

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.