¿Cómo activar Virtualenv cuando se inicia un script de Python?

13

Quiero programar una secuencia de comandos de Python para que se ejecute usando cron en ciertas fechas, el problema es que para example.pyque funcione, example-envdebe activarse, ¿hay alguna forma de example.pyactivar su propio virtualenv cada vez que cron lo ejecuta?

si no, entonces tengo que crear un script bash bash.shque contenga

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

y luego programar que cron sea ejecutado en ciertas fechas? ¿O tengo que hacer otra cosa?

Ambas formas están bien conmigo, solo quiero saber la forma correcta de hacerlo. Quizás prefiera el método de script bash, ya que tengo muchos archivos Python para ejecutar, así que si los pongo todos dentro de un script bash y lo programo, me parece más fácil, pero nuevamente no sé la forma correcta de hacerlo Por lo tanto, estoy pidiendo consejo.

Lynob
fuente
¿Hay una manera "correcta"? Tal vez hay otra manera.
ctrl-alt-delor
@richard estaré feliz de saberlo. Yo sólo formulé mi pregunta de esa manera coz que nunca se me ocurrió que podría haber una manera mejor, pero me gusta mucho aprender
Lynob

Respuestas:

21

Puede comenzar example.pycon la ruta completa a example-env/bin/python2.

Alternativamente, cambie la línea shebang del example.pypara usar ese ejecutable, haga que el archivo sea ejecutable ( chmod +x example.py) y omita python y use la ruta completa example.pypara iniciarlo:

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