Como ativar o Virtualenv quando um script Python é iniciado?

13

Eu quero agendar um script python para executar usando cron em determinadas datas, o problema é que, para example.pyfuncionar, example-envprecisa ser ativado, existe uma maneira de example.pyativar seu próprio virtualenv sempre que o cron executá-lo?

caso contrário, tenho que criar um script bash bash.shque contenha

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

e depois agendar que seja executado pelo cron em determinadas datas? Ou tenho que fazer outra coisa?

As duas maneiras estão bem comigo, eu só quero saber a maneira correta de fazê-lo. Talvez eu prefira o método bash script, já que tenho muitos arquivos Python para executar; portanto, se eu os colocar dentro de um script bash e agendar isso, parece mais fácil para mim, mas novamente não sei a maneira correta de fazê-lo. , portanto, estou pedindo conselhos.

Lynob
fonte
Existe uma maneira "correta"? Talvez haja outro caminho.
Ctrl-alt-delor
@richard, ficarei feliz em saber sobre isso. Eu só formulada minha pergunta dessa forma coz ele nunca me ocorreu que poderia haver uma maneira melhor, mas eu adoro aprender
Lynob

Respostas:

20

Você pode simplesmente iniciar o example.pycom o caminho completo para example-env/bin/python2.

Alternativamente, altere a linha shebang do example.pypara usar esse executável, torne esse arquivo executável ( chmod +x example.py) e deixe de fora o python e use o caminho completo example.pypara iniciá-lo:

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