如何在具有请求lib进行curl req的虚拟环境中为python脚本运行cronjob?

时间:2018-12-10 08:20:55

标签: python curl cron python-requests virtualenv

我有一个Python脚本,该脚本使用请求库向URL发出curl请求并获取响应。当我手动运行它时,它能够获取响应对象并更新var值。也为脚本设置了虚拟环境。脚本如下:

#! /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

它会打印相应的obj并激活虚拟环境,但输出不会反映在myout.txt中。

1 个答案:

答案 0 :(得分:0)

代替激活环境,请尝试使用该虚拟环境中python的完整路径:

更改此:

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

对于这样的事情:

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