Jak aktywować Virtualenv po uruchomieniu skryptu Python?

13

Chcę zaplanować uruchamianie skryptu Pythona przy użyciu crona w określonych terminach, problem polega na tym, że example.pyaby działać, example-envmusi zostać aktywowany, czy istnieje sposób, aby example.pyaktywować własną wirtualną maszynę za każdym razem, gdy wykonuje ją cron?

jeśli nie, to czy muszę utworzyć skrypt bash, bash.shktóry zawiera

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

a następnie zaplanować wykonanie przez crona w określonych terminach? A może muszę zrobić coś innego?

Oba sposoby są ze mną w porządku, chcę tylko wiedzieć, jak to zrobić. Być może wolę metodę skryptu bash, ponieważ mam wiele plików Pythona do uruchomienia, więc jeśli umieszczę je wszystkie w skrypcie bash i zaplanuję to, wydaje mi się to łatwiejsze, ale znowu nie wiem, jak to zrobić , dlatego proszę o radę.

Lynob
źródło
Czy istnieje „poprawny” sposób? Może jest inny sposób.
ctrl-alt-delor
@richard Z przyjemnością się o tym dowiem. Właśnie sformułowałem swoje pytanie w ten sposób, ponieważ nigdy nie przyszło mi do głowy, że może być lepszy sposób, ale uwielbiam się uczyć
Lynob

Odpowiedzi:

21

Możesz po prostu rozpocząć example.pyod pełnej ścieżki do example-env/bin/python2.

Alternatywnie zmień linię shebang, example.pyaby użyć tego pliku wykonywalnego, uczyń ten plik plikiem wykonywalnym ( chmod +x example.py) i pomiń python i użyj pełnej ścieżki, aby example.pygo uruchomić:

#!/full/path/to/example-env/bin/python2
Anthon
źródło