Как запустить Cronjob для сценария Python в виртуальной среде, которая имеет запрос lib, чтобы сделать curl req? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть скрипт на Python, который использует lib запросов, чтобы сделать запрос curl для URL и получить ответ.Когда я запускаю его вручную, он может получить объект ответа и обновить значение var.Для сценария также установлен виртуальный env.Сценарий выглядит так:

#! /bin/bash
source myEnv/bin/activate
python /Users/mj/req.py

, а crontab выглядит следующим образом:

*/1 * * * *  /Users/mj/Enviroments/myscript.sh >> /Users/mj/Enviroments/myout.txt

и req.py:

resp = requests.post(<some url>)
print(resp.json())

И для запуска сценария:

source myscript.sh

Он печатает соответствующий объект, а также активирует виртуальную среду, но вывод не отражается в myout.txt.

1 Ответ

0 голосов
/ 10 декабря 2018

Вместо активации среды попробуйте использовать полный путь к питону, который находится внутри этого виртуального окружения:

Измените это:

#! /bin/bash
source myEnv/bin/activate
python /Users/mj/req.py

На что-то вроде этого:

#! /bin/bash
/.../myEnv/bin/python /Users/mj/req.py
...