Comment activer Virtualenv lorsqu'un script Python démarre?

13

Je veux planifier un script python pour qu'il s'exécute à l'aide de cron à certaines dates, le problème est que pour example.pyfonctionner, example-envdoit être activé, existe-t-il un moyen de faire example.pyactiver son propre virtualenv chaque fois que cron l'exécute?

sinon, dois-je créer un script bash bash.shcontenant

#!/usr/bin/env bash
workon example-env
python2 example.py

puis planifier que cela soit exécuté par cron à certaines dates? Ou dois-je faire autre chose?

Les deux façons me conviennent, je veux juste savoir comment le faire. Peut-être que je préfère la méthode du script bash, car j'ai de nombreux fichiers Python à exécuter, donc si je les mets tous dans un script bash et que je le planifie, cela me semble plus facile, mais encore une fois, je ne sais pas comment le faire , donc je demande des conseils.

Lynob
la source
Y a-t-il une manière «correcte»? Il y a peut-être une autre façon.
ctrl-alt-delor
@richard, je serai heureux de le savoir. Je viens de formuler ma question de cette façon car il ne m'est jamais venu à l'
esprit

Réponses:

21

Vous pouvez simplement démarrer le example.pyavec le chemin d'accès complet à example-env/bin/python2.

Alternativement, changez la ligne shebang de example.pypour utiliser cet exécutable, rendez ce fichier exécutable ( chmod +x example.py) et omettez python et utilisez le chemin complet example.pypour le démarrer:

#!/full/path/to/example-env/bin/python2
Anthon
la source