Wie aktiviere ich Virtualenv, wenn ein Python-Skript gestartet wird?

13

Ich mag einen Python - Skript planen mit cron zu bestimmten Terminen zu laufen, ist das Problem , dass für , um example.pyzu arbeiten, example-envaktiviert werden muss, ist es eine Möglichkeit zu machen example.pyactivate seine eigene virtualenv , wenn Cron es ausführen?

Wenn nicht, muss ich ein Bash-Skript erstellen bash.sh, das enthält

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

und dann planen, dass an bestimmten Daten von Cron ausgeführt werden? Oder muss ich noch etwas tun?

Für mich ist beides in Ordnung, ich möchte nur wissen, wie ich es richtig mache. Vielleicht bevorzuge ich die Bash-Skript-Methode, da ich viele Python-Dateien ausführen muss. Wenn ich sie also alle in ein Bash-Skript einbaue und dies terminiere, erscheint es mir einfacher, aber ich weiß auch nicht, wie ich es richtig machen soll Deshalb bitte ich um Rat.

Lynob
quelle
Gibt es einen "richtigen" Weg? Vielleicht gibt es einen anderen Weg.
Strg-Alt-Delor
@richard Ich würde mich freuen, davon zu erfahren. Ich habe meine Frage nur so formuliert, weil mir nie aufgefallen ist, dass es einen besseren Weg gibt, aber ich liebe es zu lernen
Lynob

Antworten:

20

Sie können einfach example.pymit dem vollständigen Pfad zu beginnen example-env/bin/python2.

Alternativ können Sie die shebang-Zeile von ändern example.py, um diese ausführbare Datei zu verwenden. Machen Sie diese Datei ausführbar ( chmod +x example.py), lassen Sie Python weg und verwenden Sie den vollständigen Pfad example.py, um sie zu starten:

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