使用crontab在每天的固定时间运行python脚本

时间:2016-11-19 20:35:17

标签: python python-3.x crontab

首先,我尝试了本网站和其他网站上建议的所有方法,但我仍然无法让它工作。 我的python脚本位于我的主文件夹中。它会导入请求,时间和其他第三方模块等模块。它可以在命令行中正常工作。 但它不适用于crontab。我认为问题是当它从cron运行时,导入不起作用并且脚本失败。 的的crontab:

PATH=/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/bash
PYTHONPATH=/home/chanzerre:/usr/lib64/python35.zip:/usr/lib64/python3.5:/usr/lib64/python3.5/plat-linux:/usr/lib64/python3.5/lib-dynload:/usr/lib64/python3.5/site-packages:/usr/lib/python3.5/site-packages
* * * * * /home/chanzerre/script.py

我的Python脚本的结构:

#! /usr/bin/python3.5
import requests as req
import time
from pprint import pprint
# third party imports here

#code here

有人可以帮忙吗? 如果需要,会提供更多细节。

P.S。 请不要将其标记为愚蠢,因为我已经尝试了其他人提出的类似问题中提出的所有方法以及对生命的热爱,但它仍然无效。

2 个答案:

答案 0 :(得分:0)

您是否尝试过将script.py作为可执行文件?只需键入Python文件的路径就不会运行脚本。您需要在文件中添加一个shebang:

#!/usr/bin/python

然后使其可执行:

$ mv /home/chanzerre/script.py /home/chanzerre/script
$ chmod +x /home/chanzerre/script

然后你的crontab变成

* * * * * /home/chanzerre/script

试一试,看看它是否运行你的文件。

答案 1 :(得分:0)

您是否设置了脚本运行所需的所有环境变量?如果没有,它就不会工作。例如,如果你在代理服务器后面运行该脚本,并且没有设置代理变量,它就不会工作。 在crontab或python脚本本身设置您的代理变量,它将起作用。